/* Compact screening workspace. Detail primitives remain in app.css. */
:root { --bg:#f4f6f9; --ink:#203348; --muted:#6d7e90; --line:#e1e7ee; --blue:#245c9a; }
html { height:100%; }
body { height:100vh; height:100dvh; display:grid; grid-template-rows:62px minmax(0,1fr) 24px; overflow:hidden; font-size:13px; line-height:1.45; }
button { touch-action:manipulation; }
.topbar { height:auto; padding:0 20px; gap:16px; }
.header-identity,.header-actions { display:flex; align-items:center; gap:20px; min-width:0; }
.brand { gap:0; flex-shrink:0; }
.brand-logo { display:block; width:118px; height:51px; object-fit:contain; }
.header-identity h1 { margin:0; padding-left:20px; border-left:1px solid var(--line); font-size:16px; font-weight:650; letter-spacing:0; line-height:1.4; }
.summary-chips { align-items:center; justify-content:flex-start; gap:14px; margin:0; white-space:nowrap; }
.summary-chips span { border:0; border-radius:0; padding:0; font-size:11px; }
.summary-chips span+span { padding-left:14px; border-left:1px solid var(--line); }
.docs { color:var(--blue); font-size:11px; white-space:nowrap; }
main { max-width:none; min-width:0; min-height:0; margin:0; padding:12px 16px 0; }
.workspace { height:100%; min-height:0; grid-template-columns:292px minmax(0,1fr); gap:12px; align-items:stretch; }
.panel { border-radius:9px; box-shadow:none; }
.source-panel { position:static; display:flex; flex-direction:column; min-width:0; min-height:0; padding:12px; overflow:hidden; }
.source-tools { flex-shrink:0; }
.panel-title { margin-bottom:10px; }
.panel-title h2 { font-size:13px; }
.source-panel-controls { display:flex; align-items:center; gap:8px; }
.counter { padding:2px 7px; border-radius:5px; }
input[type=search],input[type=text] { border-radius:6px; background:#fff; }
#source-filter { height:32px; padding:7px 9px; font-size:12px; }
.source-filters { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px; }
.source-filters label { display:grid; gap:3px; font-size:10px; color:var(--muted); }
.source-filters select { width:100%; min-width:0; height:30px; }
.preset-label { display:block; margin-top:7px; color:var(--muted); font-size:10px; }
.scope-preset { width:100%; height:30px; margin-top:3px; }
.selection-actions { flex-wrap:wrap; gap:5px 10px; margin:9px 0; }
.selection-actions button { font-size:11px; }
.selection-summary { padding:6px 7px; border-radius:5px; background:#f4f6f9; color:var(--muted); font-size:10px; }
.selected-only { display:flex; align-items:center; gap:6px; margin:7px 0; color:var(--muted); font-size:10px; cursor:pointer; }
.selected-only input { margin:0; accent-color:var(--blue); }
.sources,.results-scroll,#coverage-list,.record-panel,pre,.source-text { scrollbar-width:thin; scrollbar-color:#bcc9d7 transparent; overscroll-behavior:contain; }
.sources { flex:1; min-height:0; max-height:none; overflow:auto; border-top:1px solid var(--line); padding-right:4px; }
.source { gap:8px; padding:9px 2px; }
.source:hover { background:#f7f9fc; }
.source>div { min-width:0; }
.source-name { font-size:12px; line-height:1.4; font-weight:550; overflow-wrap:anywhere; }
.source-extra { gap:5px; margin-top:3px; font-size:11px; }
.source-legend { padding-top:9px; font-size:9px; flex-shrink:0; }
.search-column { display:flex; flex-direction:column; gap:10px; min-width:0; min-height:0; }
.search-panel { padding:12px 14px; flex-shrink:0; }
.field-label { margin-bottom:5px; font-size:12px; }
.search-row { flex-direction:row; gap:8px; }
#name { width:100%; height:40px; padding:9px 12px; font-size:14px; }
.primary { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-width:96px; padding:8px 18px; border-radius:6px; font-size:13px; }
.primary span { margin:0; font-size:inherit; line-height:normal; }
.primary svg { flex-shrink:0; }
.options-row { gap:7px 18px; margin-top:8px; font-size:11px; }
.threshold-label { gap:6px; }
.threshold-label select { height:27px; padding:3px 6px; }
.score-note { margin:0 0 0 auto; padding:0; border:0; font-size:10px; }
#message { flex-shrink:0; margin:0; padding:8px 12px; font-size:11px; }
#screening-form[aria-busy=true] .primary svg { animation:search-pulse .8s ease-in-out infinite alternate; }
@keyframes search-pulse { to { opacity:.35; } }
.empty-state { display:grid; place-items:center; flex:1; min-height:0; padding:16px; overflow:auto; }
.empty-state-content { max-width:360px; }
.empty-state svg { color:#8da1b7; }
.empty-state h2 { margin:10px 0 6px; font-size:15px; font-weight:600; }
.empty-state p { font-size:12px; }
.results-section { display:flex; flex-direction:column; flex:1; min-height:0; overflow:hidden; }
.results-heading { align-items:center; gap:12px; margin:0; padding:11px 14px; border-bottom:1px solid var(--line); flex-shrink:0; }
.results-summary { min-width:0; flex:1; }
.results-heading h2 { margin:0 0 3px; font-size:16px; font-weight:650; }
.results-heading p { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; overflow-wrap:anywhere; }
.export-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:5px; flex-shrink:0; }
.secondary { border-radius:5px; padding:5px 9px; font-size:11px; white-space:nowrap; }
.results-scroll { flex:1; min-height:0; padding:12px; overflow:auto; }
.coverage-warning,.coverage-ok { padding:8px 10px; margin-bottom:8px; border-radius:6px; font-size:11px; }
.coverage-details { margin-bottom:10px; }
#coverage-list { max-height:180px; margin-top:7px; }
.pagination { gap:8px; margin:0; padding:9px 12px; border-top:1px solid var(--line); flex-shrink:0; }
.no-results { padding:30px 12px; font-size:12px; }
footer { align-items:center; gap:7px; margin:0; font-size:10px; }
.result-card { margin-bottom:10px; padding:14px; border-radius:7px; }
.result-card:last-child { margin-bottom:0; }
.result-top>div:first-child { min-width:0; }
.result-name { font-size:17px; font-weight:650; }
.result-badges { display:flex; align-items:center; flex-wrap:wrap; gap:5px; margin-top:5px; }
.result-type { margin-top:0; padding:2px 6px; font-size:9px; }
.record-active { color:#18775f; background:#eaf7f1; }
.record-inactive { color:#7a6870; background:#f5f1f2; }
.similarity { flex-shrink:0; font-size:22px; font-weight:700; }
.similarity-meter { display:block; width:72px; height:3px; margin:6px 0 0 auto; overflow:hidden; border-radius:999px; background:#e3eaf5; }
.similarity-meter>span { display:block; height:100%; border-radius:inherit; background:currentColor; }
.result-dataset { margin:9px 0 6px; font-size:11px; }
.result-aliases { font-size:11px; }
.quick-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:10px 0 0; overflow:hidden; border:1px solid var(--line); border-radius:5px; background:var(--line); }
.quick-facts>div { min-width:0; padding:7px 9px; background:#f8fafc; }
.quick-facts>div:last-child:nth-child(odd) { grid-column:1/-1; }
.quick-facts dt { margin-bottom:2px; color:var(--muted); font-size:10px; }
.quick-facts dd { margin:0; color:var(--ink); font-size:12px; overflow-wrap:anywhere; }
.record-actions { gap:10px; margin-top:10px; font-size:11px; }
.record-details { margin-top:10px; padding-top:9px; }
.images img { height:110px; max-width:180px; }
.record-shell { margin-top:11px; border-top:1px solid var(--line); }
.record-shell>summary { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:10px; color:var(--blue); font-size:11px; font-weight:600; }
.record-shell>summary>span:first-child::before { content:"▸"; display:inline-block; width:13px; }
.record-shell[open]>summary>span:first-child::before { content:"▾"; }
.record-summary-hint { color:var(--muted); font-size:10px; font-weight:400; text-align:right; }
.record-viewer { margin-top:7px; min-width:0; border-top:0; }
.record-tabs { gap:20px; }
.record-tab { padding:8px 0; border-bottom-width:2px; font-size:12px; }
.record-panel { min-width:0; max-height:min(440px,52dvh); overflow:auto; padding:0 3px 3px 0; }
.section-title { margin:12px 0 8px; font-size:12px; }
.field-grid { border-radius:5px; font-size:12px; }
.field-row { grid-template-columns:minmax(130px,28%) minmax(0,1fr); }
.field-row dt { padding:8px 10px; font-size:11px; }
.field-row dd { padding:8px 10px; }
.source-text { max-height:320px; padding:10px; font-size:11px; }
.source-file { margin:8px 0; padding:10px 12px; border-radius:6px; }
.source-file>a { font-size:12px; }
.source-file small { margin-top:4px; font-size:10px; }
pre { max-height:360px; padding:12px; }
.mobile-scope-open,.mobile-scope-close,.scope-backdrop { display:none; }
[tabindex="0"]:focus-visible { outline:2px solid #719bd1; outline-offset:2px; }
@media (prefers-reduced-motion:reduce) { #screening-form[aria-busy=true] .primary svg { animation:none; } }
@media (max-width:1100px) {
  .workspace { grid-template-columns:270px minmax(0,1fr); }
  .score-note { flex-basis:100%; margin-left:0; }
}
@media (max-width:800px) {
  body { grid-template-rows:56px minmax(0,1fr) 20px; }
  .topbar { padding:0 12px; gap:10px; }
  .header-identity { gap:10px; }
  .brand-logo { width:100px; height:43px; }
  .header-identity h1 { padding-left:10px; font-size:13px; }
  .summary-chips { display:none; }
  .docs { font-size:10px; }
  main { padding:8px 8px 0; }
  .workspace { grid-template-columns:minmax(0,1fr); gap:0; }
  .search-column { gap:8px; }
  .search-panel { padding:10px 12px; }
  .primary { min-width:84px; padding:8px 12px; font-size:12px; }
  .mobile-scope-open { display:grid; grid-template-columns:1fr auto; align-items:center; gap:1px 8px; width:100%; padding:7px 9px; margin:0 0 9px; border:1px solid var(--line); border-radius:6px; background:#f6f8fb; color:var(--ink); text-align:left; cursor:pointer; }
  .mobile-scope-open>span:first-child { font-size:11px; font-weight:650; }
  .mobile-scope-open strong { grid-row:2; color:var(--muted); font-size:10px; font-weight:400; }
  .mobile-scope-open>span:last-child { grid-column:2; grid-row:1/span 2; color:var(--blue); font-size:11px; }
  .source-panel { display:none; position:fixed; z-index:31; inset:0 0 0 auto; width:min(360px,94vw); height:100%; border-radius:10px 0 0 10px; box-shadow:-12px 0 30px #20334825; }
  .source-panel.mobile-open { display:flex; }
  .source-tools { max-height:65%; overflow:auto; }
  .mobile-scope-close { display:inline-flex; align-items:center; border:0; border-radius:5px; padding:5px 9px; background:var(--blue); color:#fff; font-size:11px; cursor:pointer; }
  .scope-backdrop.visible { display:block; position:fixed; z-index:30; inset:0; border:0; background:#172c4060; }
  .results-heading { align-items:flex-start; flex-direction:row; flex-wrap:wrap; padding:9px 10px; gap:7px; }
  .results-heading h2 { font-size:14px; }
  .export-actions { justify-content:flex-start; }
  .results-scroll { padding:9px; }
  .pagination { padding:8px 10px; }
  footer { font-size:9px; }
}
@media (max-width:600px) {
  .result-card { padding:11px; }
  .result-name { font-size:15px; }
  .similarity { font-size:20px; }
  .similarity small { max-width:94px; font-size:8px; }
  .record-shell>summary { align-items:flex-start; flex-direction:column; gap:4px; }
  .record-summary-hint { padding-left:13px; text-align:left; }
  .quick-facts { grid-template-columns:minmax(0,1fr); }
  .quick-facts>div:last-child:nth-child(odd) { grid-column:auto; }
  .field-row { grid-template-columns:minmax(0,1fr); }
  .field-row dt { padding:6px 9px 3px; }
  .field-row dd { padding:5px 9px 8px; }
  .record-tabs { gap:15px; }
  .record-tab { font-size:11px; }
}
@media (max-height:600px) {
  body { grid-template-rows:48px minmax(0,1fr) 18px; }
  .brand-logo { height:41px; width:95px; }
  main { padding-top:6px; }
  .source-tools { flex-shrink:1; max-height:60%; overflow:auto; }
  .search-panel { padding-top:8px; padding-bottom:8px; }
}
@media (max-height:500px) {
  .search-panel { padding:6px 10px; max-height:115px; overflow:auto; }
  .field-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  #name { height:34px; }
  .options-row { margin-top:4px; gap:4px 12px; }
  .score-note { flex-basis:auto; font-size:9px; }
  .results-heading { padding:6px 10px; flex-wrap:nowrap; }
  .results-heading h2 { font-size:14px; }
  .pagination { padding:5px 10px; }
  .mobile-scope-open { padding:3px 7px; margin-bottom:5px; }
}
@media print {
  html,body { height:auto; overflow:visible; display:block; background:#fff; }
  .topbar,.source-panel,.search-panel,#message,.coverage-details,.export-actions,.pagination,footer,.record-actions,.record-shell { display:none!important; }
  main { max-width:none; padding:0; }
  .workspace,.search-column,.results-section,.results-scroll { display:block; height:auto; max-height:none; overflow:visible; }
  .results-section { border:0; }
  .results-heading,.results-scroll { padding:0; }
  .results-heading { margin-bottom:12px; border:0; }
  .results-heading p { display:block; overflow:visible; }
  .result-card { break-inside:avoid; box-shadow:none; }
}
