/* Explorar literatura: sheets on the gray canvas, one teal action per group, the map as figure. Tokens come from style.css (dark values in account_theme.css). */
/* No padding of its own: the header starts where the other modules' headers start (main supplies the gutter). */
.paper-explorer{padding:0;color:var(--ink)}
.paper-explorer.hidden{display:none}
.ex-result-header,.ex-actions,.ex-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ex-result-header{justify-content:space-between}
/* Module header: the shell's pattern (.view-head, .view-head-text, .view-title and .view-head-actions in style.css) draws it, with or without
   an exploration open, as in every module. The view's own heading and paragraph rules below skip it (:where keeps their weight). */
.ex-shell{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;margin-top:20px}
.ex-start,.ex-results{min-width:0}
.ex-start{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:16px;align-self:start}
.paper-explorer :is(h2,h3,h4,h5):where(:not(.view-title)){font-family:var(--font-display);font-weight:600;color:var(--ink);letter-spacing:-.005em}
.paper-explorer h2:where(:not(.view-title)){font-size:18px;line-height:1.3}
.paper-explorer h3{font-size:15px;line-height:1.35}
.paper-explorer h4{font-size:14px;line-height:1.4}
.paper-explorer h5{font-size:13.5px;line-height:1.4}
.paper-explorer p:where(:not(.view-head-text>p)){line-height:1.5}
.paper-explorer small{font-size:12px}
.paper-explorer label{display:block;font-size:13px;font-weight:600;margin:9px 0}

/* Fields: label above, hairline control border, teal focus ring. Selects keep the global chevron (background-color, never the shorthand). */
.paper-explorer input:not([type=checkbox],[type=radio],[type=range],[type=color]),.paper-explorer select,.paper-explorer textarea{display:block;width:100%;box-sizing:border-box;border:1px solid var(--control-line);border-radius:var(--radius);padding:7px 10px;margin-top:5px;background-color:var(--surface);color:var(--ink);font:inherit;font-size:13.5px}
.paper-explorer select{padding-right:30px}
.paper-explorer textarea{min-height:0;line-height:1.5}
.paper-explorer :is(input:not([type=checkbox],[type=radio],[type=range],[type=color]),select,textarea):hover{border-color:var(--line-hover)}
.paper-explorer :is(input:not([type=checkbox],[type=radio],[type=range],[type=color]),select,textarea):focus-visible{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--ring)}
.paper-explorer :is(input,select,textarea):disabled{background-color:var(--surface-2);color:var(--muted);cursor:not-allowed}
.paper-explorer input[type=range]{display:block;width:100%;min-height:0;padding:0;border:0;background:none;accent-color:var(--green)}
.paper-explorer input[type=color]{display:block;width:44px;height:32px;min-height:32px;padding:2px;margin-top:5px;border:1px solid var(--control-line);border-radius:var(--radius);background-color:var(--surface);cursor:pointer}
.paper-explorer :is(input[type=checkbox],input[type=radio]):focus-visible{outline:2px solid var(--focus);outline-offset:2px}
/* A box or radio sits on the text line of its label; flex labels already space it with gap. */
.paper-explorer label>input:is([type=checkbox],[type=radio]):first-child{margin:0 8px 0 0;vertical-align:-3px}
.paper-explorer :is(label.ex-choice,label.ex-tag-choice,label.ex-watch-choice,label.ex-appearance-choice,.ex-source-choices label,.ar-reading-lists label,.ex-appearance-palette label,.ex-appearance-stickers label,.ex-collection-drop-review fieldset label)>input:is([type=checkbox],[type=radio]){margin-right:0}

/* Buttons: the shared vocabulary. exploration.mjs marks each form's main action .primary, destructive steps .secondary.danger and the rest .secondary.
   The base rule is the .secondary look, so buttons other modules inject without a class read the same. */
.paper-explorer button,.paper-explorer .ex-exports a{min-height:34px;border:1px solid var(--control-line);border-radius:var(--radius);background-color:var(--surface);color:var(--ink-2);padding:6px 12px;font:inherit;font-size:13px;font-weight:500;line-height:1.4;cursor:pointer;transition:background-color var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out)}
/* Classed buttons take the global hover (.secondary: --surface-2, --line-hover, --ink). Unclassed buttons from other modules only get a currentColor veil,
   because many of them paint their own teal (submit, commit, aria-pressed) and a background swap would put light text on a light fill. */
@media (hover:hover){.paper-explorer :is(button,.ex-exports a):not(:where(:disabled,.primary,.secondary,.ghost,.ex-paper-title,.ex-link,.cm-control,.cm-legend-item,[data-ex-crop-handle],.ex-map-config-shortcuts button)):hover{box-shadow:inset 0 0 0 100vmax color-mix(in oklch,currentColor 8%,transparent)}}
.paper-explorer :is(button,.ex-exports a):not(:where(:disabled,.ex-paper-title,.ex-link,[data-ex-crop-handle])):active{transform:scale(.97)}
.paper-explorer button:disabled{opacity:.55;cursor:not-allowed}
.paper-explorer :is(button,a,summary):focus-visible{outline:2px solid var(--focus);outline-offset:2px}
:where(.ex-svg) .ex-node:focus-visible circle{outline:2px solid var(--focus);outline-offset:2px}
/* The crop handles sit on the corners with translate(-50%,-50%) (graph_options.css): no press scale, no veil, no transition. */
.paper-explorer [data-ex-crop-handle]{transition:none}
.paper-explorer button.primary{background-color:var(--green);border-color:var(--green);color:var(--on-accent);font-weight:600;white-space:normal;box-shadow:var(--shadow-sm)}
@media (hover:hover){.paper-explorer button.primary:not(:disabled):hover{background-color:var(--green-strong);border-color:var(--green-strong);color:var(--on-accent);box-shadow:var(--shadow-md)}}
/* A row's own action is the shell's .ghost (style.css): no border or fill at rest, teal text; the base look above would otherwise win. */
.paper-explorer button.ghost{border-color:transparent;background-color:transparent;color:var(--green-strong);font-weight:600;padding:6px 10px}
.paper-explorer button.danger{border-color:var(--red-line);color:var(--red)}
@media (hover:hover){.paper-explorer button.danger:not(:disabled):hover{border-color:var(--red);background-color:var(--red-soft);color:var(--red)}}
/* Form actions in the narrow start column fill its width; the colour comes from the class. */
.paper-explorer :where(#ex-search,#ex-create,#ex-import,#ex-pdf-seed,#ex-png,#ex-citation-form,#ex-completion-form,#ex-metadata,#ex-new-note,[data-ex-note-form],#ex-project-create,#ex-project-rename,#ex-collection-create,#ex-org-create,#ex-org-edit,#ex-recent-filter,#ex-zotero-oauth,#ex-zotero-key) button[type=submit]{width:100%;margin-top:9px}
@media (pointer:coarse){.paper-explorer :is(button,.ex-exports a):not(.ex-link,.ex-paper-title,.cm-control,.cm-legend-item,[data-ex-crop-handle]),.paper-explorer :is(input:not([type=checkbox],[type=radio],[type=range],[type=color]),select){min-height:44px}}

.ex-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
/* Start-column disclosures are rows, as in the tools sheet: a hairline above, no outer margin, and the summary carries the row (11px above
   and below its first line, 44px on touch), so the text sits centred between its hairline and the next one. Only an open row adds room
   below. A summary that wraps in the narrow column keeps the chevron on its first line (line-height 1.45). The help folds stay inline. */
.ex-start details:not(.ex-help-fold){border-top:1px solid var(--line);padding:0;margin:0}
.ex-start details:not(.ex-help-fold)[open]{padding-bottom:12px}
.ex-start details:not(.ex-help-fold)>summary{padding-block:11px;align-items:flex-start}
.ex-start details:not(.ex-help-fold)>summary::before{margin-top:calc(.725em - 6px)}
.ex-start details:not(.ex-help-fold)[open]>summary{margin-bottom:4px}
@media (pointer:coarse){.ex-start details:not(.ex-help-fold)>summary{min-height:44px;padding-block:12px;box-sizing:border-box}}
/* Disclosures use the global summary (style.css: hidden native marker, 12px chevron, 13.5px semibold --ink-2); rules here only space them. */
.ex-start summary,.ex-settings summary{cursor:pointer;font-weight:600}
/* Start column, top to bottom: saved explorations (when there are any), the search and its action, then the search mode row, the
   collection and "Sementes e opções da exploração". The search action keeps room above the row that follows it. */
.paper-explorer .ex-start-title{margin:0 0 12px}
.paper-explorer .ex-saved>h2{font-size:16px;line-height:1.35;margin:0 0 10px}
.ex-start>.ex-saved:first-child{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.ex-start>.ex-saved:not(:first-child){padding-top:12px;margin-top:0;border-top:1px solid var(--line)}
.paper-explorer .ex-start #ex-search>button[type=submit]{margin-bottom:12px}
/* The saved list shows the most recent sessions; the older ones fold into one quiet line that continues the list (no hairline of its own). */
.ex-start #ex-history>.ex-history-older{border-top:0}
.ex-start #ex-history>.ex-history-older[open]{padding-bottom:0}
/* Saved explorations are the rows of a list, as in the tools sheet, not bordered buttons: each is a .ghost spanning the column (8px past
   each side, so its text keeps the column's edge), the name in ink and the state muted after the middle dot, a hairline between rows.
   The hairline is drawn apart from the ghost's own border, and gives way beside a row under the pointer or the focus ring. */
.ex-start #ex-history,.ex-history-list{gap:0}
.paper-explorer button.ex-saved-item{position:relative;display:block;width:calc(100% + 16px);margin:0 -8px;padding:8px;color:var(--ink);font-size:13px;font-weight:500;line-height:1.45}
.paper-explorer button.ex-saved-item+button.ex-saved-item::before{content:"";position:absolute;top:-1px;left:8px;right:8px;border-top:1px solid var(--line)}
.paper-explorer button.ex-saved-item:is(:hover,:focus-visible)::before,.paper-explorer button.ex-saved-item:is(:hover,:focus-visible)+button.ex-saved-item::before{border-top-color:transparent}
/* The middle dot and the state never part: the space before the dot (outside the span) is where a long name wraps. */
.ex-saved-state{font-weight:400;color:var(--muted);white-space:nowrap}
.ex-start #ex-history [data-ex-action=history-more],.ex-start #ex-history>.ex-history-older{margin-top:6px}
/* Opened, the older sessions scroll inside a bounded box, so a long history never pushes the search far down; the inset (12px, which
   the rows' 8px reach outside the column leaves at 4px) keeps focus rings visible. */
.ex-history-list{display:flex;flex-direction:column;max-height:min(360px,50vh);overflow:auto;padding:4px 12px;margin:0 -12px}
.ex-history-list>*{flex:none}
/* The start column's summaries wrap their label and short summary in one span, so in the 280px column they wrap as one line of text
   instead of two flex columns. Long notes fold into one short line under their control; the line counts warnings in amber. */
.paper-explorer .ex-start .ex-help-fold{border:0;padding:0;margin:6px 0 0}
.ex-help-fold[open]>summary{margin-bottom:4px}
.ex-help-fold .ex-muted{margin:6px 0}
.paper-explorer .ex-start .ex-warn-count{display:inline-block;padding:0 6px;border-radius:var(--radius);background:var(--amber-soft);color:var(--amber-ink);font-weight:600;line-height:1.5}
/* The bases are three short choices: one line of boxes (each a 44px target on touch) instead of a column. */
.ex-source-choices{display:flex;flex-wrap:wrap;column-gap:16px}
.paper-explorer .ex-source-choices label{margin:6px 0}
@media (pointer:coarse){.paper-explorer .ex-source-choices label{min-height:44px;margin:0}}
/* "Sementes e opções da exploração" folds only where the column stacks above the page and no session is open (graph_workspace.mjs
   keeps it open everywhere else); there its summary is hidden and the wrapper adds no box of its own, only room above the next row. */
.ex-start>#ex-start-more{border:0;padding:0;margin:0 0 12px}
.ex-focus-mode #ex-start-more>summary{display:none}
@media(min-width:1001px){#ex-start-more>summary{display:none}}
@media(max-width:1000px){.paper-explorer:not(.ex-focus-mode) .ex-start>#ex-start-more{border-top:1px solid var(--line);padding:0;margin:0}.paper-explorer:not(.ex-focus-mode) .ex-start>#ex-start-more[open]{padding-bottom:12px}}
.ex-seed,.ex-search-paper{display:flex;flex-direction:column;gap:6px;font-size:13px}
.ex-search-paper{border-top:1px solid var(--line);padding:10px 0;margin:0}
.ex-seed{padding:10px;margin:8px 0;border-radius:var(--radius-card);background:var(--green-wash)}
.ex-seed button{align-self:end}
.ex-search-paper small,.ex-muted{color:var(--muted);font-weight:400;font-size:12px}
.ex-error{padding:12px;background:var(--red-soft);color:var(--red);border:1px solid var(--red-line);border-radius:var(--radius-card);margin:10px 0}
.ex-empty{padding:64px 24px;border:1px dashed var(--line-strong);border-radius:var(--radius-card);text-align:center;background:var(--surface)}
.ex-empty p{color:var(--muted);max-width:60ch;margin-inline:auto}
.ex-coverage{font-size:12.5px;background:var(--surface-2);border-radius:var(--radius-card);padding:10px;margin:10px 0}
.ex-coverage pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;max-height:95px;overflow:auto;margin-bottom:0}
.ex-toolbar{padding:8px 0;border-bottom:1px solid var(--line);margin-bottom:12px}
.ex-toolbar label{min-width:100px}
.ex-toolbar select{padding:5px 30px 5px 9px}

/* Discovery grid: list, map and inspector are sibling sheets. */
.ex-discovery-grid{display:grid;grid-template-columns:minmax(230px,.85fr) minmax(360px,1.35fr) minmax(230px,.85fr);gap:12px;align-items:start}
.ex-discovery-grid.mode-list{grid-template-columns:minmax(300px,2fr) minmax(240px,1fr)}
.ex-discovery-grid.mode-list .ex-map{display:none}
.ex-discovery-grid.mode-map{grid-template-columns:minmax(380px,2fr) minmax(240px,1fr)}
.ex-discovery-grid.mode-map .ex-paper-list{display:none}
.ex-paper-list,.ex-map,.ex-inspector{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);padding:12px;min-width:0}
.ex-paper-list{max-height:900px;overflow:auto}
.ex-paper{border-bottom:1px solid var(--line);padding:12px 0}
.ex-paper.is-inspected{padding-inline:8px;border-radius:var(--radius-card);background:var(--green-wash);box-shadow:inset 0 0 0 1px var(--green-line)}
.ex-paper p{font-size:12.5px;margin:6px 0}
.ex-paper small{font-size:12px;color:var(--muted)}
.ex-paper-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ex-paper .ex-choice{font-size:12.5px;font-weight:500;display:flex;align-items:center;gap:6px;margin:0}
.ex-chip{font-size:12px;font-weight:500;line-height:1.4;background:var(--surface-2);color:var(--ink-2);padding:2px 7px;border-radius:var(--radius)}
.ex-paper-title{display:block;text-align:left!important;background:transparent!important;border:0!important;padding:6px 0!important;font-weight:600!important;font-size:13.5px!important;color:var(--ink)!important;width:100%;min-height:0}
@media (hover:hover){.ex-paper-title:not(:disabled):hover{text-decoration:underline;text-underline-offset:3px}}

/* Map figure (SVG drawn by the explorer; frame colours live in citation_map.css). */
.ex-svg{display:block;width:100%;height:auto;min-height:280px;touch-action:none;user-select:none}
.ex-edges line{stroke:var(--muted);stroke-width:1.3;opacity:.65}
.ex-node{cursor:grab}
:where(.ex-svg) .ex-node circle{fill:var(--focus);stroke:var(--green);stroke-width:2}
:where(.ex-svg) .ex-node.is-seed circle{fill:#f2c274;stroke:#966622}
:where(.ex-svg) .ex-node.is-selected circle{stroke:var(--ink-2);stroke-width:4}
:where(.ex-svg) .ex-node.is-inspected circle{stroke:var(--green-strong);stroke-width:4}
.ex-node text{font-size:12px;fill:var(--ink);pointer-events:none}
:where(.ex-svg) .ex-node:hover circle,:where(.ex-svg) .ex-node:focus circle{stroke-width:5}
.ex-axis{stroke:var(--line-strong);fill:none}
.ex-axis-label{font-size:12px;fill:var(--muted)}
.ex-map-caption{font-size:12px;color:var(--muted)}
.ex-settings{border-top:1px solid var(--line);padding:12px 0}
.ex-settings fieldset,.ex-start fieldset{border:0;padding:0;margin:14px 0;min-width:0;font-size:12.5px}
.ex-settings legend,.ex-start legend{padding:0;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--ink)}
.ex-settings p{font-size:12.5px;color:var(--muted)}
.ex-inspector{position:sticky;top:calc(var(--header-h) + 12px);font-size:13px;max-height:calc(100dvh - var(--header-h) - 24px);overflow:auto}
.ex-inspector h3 a{color:var(--ink)}
.ex-inspector dl{font-size:12.5px}
.ex-inspector dd{margin-left:0;overflow-wrap:anywhere}
.ex-abstract{white-space:pre-wrap;font-size:13px;max-width:72ch}
.ex-inspector .ex-link{display:inline;min-height:0;background:none;border:0;padding:2px;color:var(--green-strong);text-decoration:underline;text-underline-offset:3px}
.ex-inspector .ex-link+.ex-link{margin-left:6px}
@media (hover:hover){.ex-inspector .ex-link:not(:disabled):hover{color:var(--ink);text-decoration-thickness:2px}}
@media (pointer:coarse){.ex-inspector .ex-link{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;vertical-align:middle}}
.ex-reason{padding:10px;background:var(--surface-2);border-radius:var(--radius-card);font-size:12.5px}
.ex-exports{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:18px 0}
.ex-exports a{display:inline-flex;align-items:center;text-decoration:none}
.ex-exports p{width:100%;font-size:12.5px;color:var(--muted)}
.ex-paper-list nav{display:flex;justify-content:space-between;align-items:center;gap:6px;margin:12px 0;font-size:12.5px}
#ex-history{display:flex;flex-direction:column;gap:7px}
#ex-history button{text-align:left}
#ex-reading-list article{display:flex;flex-direction:column;gap:5px;font-size:12.5px;padding:8px 0}
.ex-import-row{font-weight:400!important}
.ex-start fieldset:disabled{opacity:.7}
.ex-discovery-grid[hidden]{display:none}
.ex-svg{min-height:450px}
.ex-node-label{display:none;paint-order:stroke;stroke:var(--surface);stroke-width:4;stroke-linejoin:round}
.ex-node-label.is-visible,.ex-node:hover .ex-node-label,.ex-node:focus .ex-node-label{display:block}
:where(.ex-svg) .ex-node.is-missing circle{stroke-dasharray:3 2}

/* Co-authorship figure: the frame follows the theme, so lines, nodes and names do too (CSS overrides the inline presentation colours). */
.ex-author-svg{width:100%;min-height:380px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}
.ex-author-svg line{stroke:var(--control-line);stroke-width:1.5}
.ex-author-svg circle{fill:var(--green);stroke:var(--surface);stroke-width:2}
.ex-author-svg text{fill:var(--ink);stroke:var(--surface);stroke-width:3px;paint-order:stroke;stroke-linejoin:round}
.ex-author-svg g{cursor:pointer}
.ex-author-svg g:focus-visible circle{stroke:var(--green-strong);stroke-width:4}
.ex-author-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.ex-author-list article{display:flex;flex-direction:column;gap:6px;background:var(--surface-2);padding:10px;border-radius:var(--radius-card);font-size:12.5px}
.ex-author-list small{color:var(--muted)}

/* Secondary panels are rows of a sheet, never a stack of cards: hairlines across the sheet between rows, a 14px semibold summary and 16px
   of side padding. One look for the library tools (#ex-library-tools), the project line ("Projeto e configurações") and, with an exploration
   open, the step's disclosures (.ex-step-rows) continued by "Ponto de partida" and the project line (see the focused workspace below).
   graph_workspace.mjs places the tools beside the start column without a session (second row of the shell grid) and below the work with one. */
.ex-tools{min-width:0;margin:16px 0;padding:0;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);container-type:inline-size}
/* Beside the start column the sheet can be narrower than the page: the two-column panels inside follow its width, not the viewport's. */
@container (max-width:700px){.ex-tools :is(.ex-org-grid,.ex-author-map-grid){grid-template-columns:minmax(0,1fr)}}
/* The two column headings of the empty state ("Ponto de partida", "Ferramentas da biblioteca") are section titles of one size. */
.paper-explorer :is(.ex-start,.ex-tools)>h2{font-size:16px;line-height:1.35}
.paper-explorer .ex-tools>h2{margin:0;padding:12px 16px 10px}
/* Specificity: the rows reset the card look their panels carry elsewhere (.ex-organization, .ex-workspace-disclosure...). */
.paper-explorer :is(.ex-tools,.ex-step-rows)>details{margin:0;padding:0 16px;border:0;border-radius:0;background:transparent;min-width:0}
.paper-explorer .ex-tools>details,.paper-explorer .ex-step-rows>details+details{border-top:1px solid var(--line)}
.paper-explorer>#ex-project-options,.paper-explorer.ex-focus-mode #ex-point-of-start{margin:0;padding:0 16px;min-width:0}
.paper-explorer :is(.ex-tools,.ex-step-rows)>details[open],.paper-explorer>#ex-project-options[open],.paper-explorer.ex-focus-mode #ex-point-of-start[open]{padding-bottom:16px}
.paper-explorer :is(.ex-tools,.ex-step-rows)>details>summary,.paper-explorer>#ex-project-options>summary,.paper-explorer.ex-focus-mode #ex-point-of-start>summary{padding:11px 0;line-height:1.4;cursor:pointer}
.paper-explorer :is(.ex-tools,.ex-step-rows)>details[open]>summary,.paper-explorer>#ex-project-options[open]>summary,.paper-explorer.ex-focus-mode #ex-point-of-start[open]>summary{margin-bottom:6px}
/* Touch: every row summary reaches 44px. */
@media (pointer:coarse){.paper-explorer :is(.ex-tools,.ex-step-rows)>details>summary,.paper-explorer>#ex-project-options>summary,.paper-explorer.ex-focus-mode #ex-point-of-start>summary{min-height:44px;padding-block:12px;box-sizing:border-box}}
/* Without a session the project line is a one-row sheet under the header. */
.paper-explorer:not(.ex-focus-mode)>#ex-project-options{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}
.paper-explorer:not(.ex-focus-mode) .ex-shell{grid-template-rows:auto 1fr}
.paper-explorer:not(.ex-focus-mode) .ex-shell>:first-child{grid-row:1 / span 2}
.paper-explorer:not(.ex-focus-mode) .ex-shell>.ex-tools{grid-column:2;align-self:start;margin:0}
@media(max-width:1000px){.paper-explorer:not(.ex-focus-mode) .ex-shell{grid-template-rows:none}.paper-explorer:not(.ex-focus-mode) .ex-shell>:first-child{grid-row:auto}.paper-explorer:not(.ex-focus-mode) .ex-shell>.ex-tools{grid-column:auto}}
@media(max-width:650px){.paper-explorer .ex-tools>h2,.paper-explorer :is(.ex-tools,.ex-step-rows)>details,.paper-explorer>#ex-project-options,.paper-explorer.ex-focus-mode #ex-point-of-start{padding-inline:12px}}
/* The panels' own card look, a fallback: exploration.mjs always mounts them in the tools sheet, where the row rules above win. */
.ex-organization,.ex-zotero,.ex-reading-panel{margin:16px 0;border:1px solid var(--line);border-radius:var(--radius-card);padding:16px;background:var(--surface)}
.ex-organization>summary,.ex-zotero>summary,.ex-author-maps>summary,.ex-reading-panel>summary{cursor:pointer}
.ex-organization[open]>summary,.ex-zotero[open]>summary,.ex-reading-panel[open]>summary{margin-bottom:14px}
.ex-org-grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(400px,3fr);gap:24px}
.ex-collection-tree,.ex-collection-tree ul{list-style:none;padding-left:15px;margin:8px 0}
.ex-collection-tree{padding-left:0}
.paper-explorer .ex-collection-tree [role=treeitem]{display:block;text-align:left;width:100%;margin:2px 0;border-color:transparent;background-color:transparent;color:var(--ink-2)}
.paper-explorer .ex-collection-tree [aria-selected=true]{background-color:var(--green-soft);border-color:var(--green-line);color:var(--ink);font-weight:600}
/* Active/archived switch: the pressed one takes the selection tint, as the selected tree item does. */
.paper-explorer [data-ex-org-tab][aria-pressed=true]{background-color:var(--green-soft);border-color:var(--green-line);color:var(--ink);font-weight:600}
.ex-collection-tree small{float:right;font-size:12px;color:var(--muted)}
.ex-org-papers{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-top:15px}
.ex-org-papers article,.ex-recent-group article{border-radius:var(--radius-card);padding:12px;background:var(--surface-2)}
.ex-org-papers label{font-size:14px}
.ex-org-papers p,.ex-org-transfer p{font-size:12.5px}
.ex-org-transfer{border-top:1px solid var(--line);padding:12px 0}
.ex-collection-tree [hidden],#ex-org-browser[hidden],#ex-recent[hidden]{display:none}
.ex-recent-group{margin:16px 0}
.ex-recent-group article{display:inline-block;vertical-align:top;width:calc(33% - 14px);box-sizing:border-box;margin:6px}
.ex-recent-group h5{margin:0;font-size:14px}
.ex-recent-group p{font-size:12.5px}
.ex-recent-group a{display:block;font-size:12.5px;margin-top:8px}
.ex-organization form{margin:14px 0}
.ex-project-bar{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;border:1px solid var(--line);background:var(--surface-2);padding:16px;border-radius:var(--radius-card);margin:16px 0}
.ex-project-bar p{font-size:12.5px;line-height:1.5;color:var(--muted)}
.paper-explorer [inert]{opacity:.55;pointer-events:none}
.paper-explorer [inert] [inert]{opacity:1}
.ex-project-bar [hidden]{display:none}
.ex-project-bar div>form~button{width:100%;margin-top:8px}
/* Deletion review and receipts sit in their own grid cells: keep their natural width instead of stretching across the 2fr column. */
.ex-project-bar>button{justify-self:start;align-self:start}
.ex-zotero-connect{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ex-zotero p{font-size:12.5px}
/* zotero_sync.mjs renders a .paper-surface inside this sheet: inside a sheet it is a section under a hairline, not a second card. */
.ex-zotero .paper-surface{margin:16px 0 0;padding:16px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
.ex-zotero-connect section{padding:12px;border-radius:var(--radius-card);background:var(--surface-2)}
.ex-zotero-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:15px 0}
.ex-zotero-items article{padding:12px;border-radius:var(--radius-card);background:var(--surface-2)}
.ex-zotero-items small{font-size:12px;color:var(--muted)}
@media(max-width:1500px){.ex-discovery-grid{grid-template-columns:minmax(230px,1fr) minmax(330px,1.5fr)}.ex-inspector{grid-column:1/-1;position:static;max-height:none}.ex-shell{grid-template-columns:250px minmax(0,1fr)}.ex-discovery-grid.mode-list,.ex-discovery-grid.mode-map{grid-template-columns:1fr}.ex-inspector{grid-column:auto}}
@media(max-width:1000px){.ex-shell{grid-template-columns:1fr}.ex-start{display:block}.ex-discovery-grid{grid-template-columns:1fr}.ex-inspector{grid-column:auto}.ex-paper-list{max-height:500px}.ex-map{min-width:0}.ex-svg{min-height:220px}.ex-fields{grid-template-columns:1fr 1fr}}
@media(max-width:1000px){.ex-org-grid{grid-template-columns:1fr}.ex-recent-group article{width:calc(50% - 14px)}}
@media(max-width:650px){.ex-recent-group article{width:100%;margin:6px 0}.ex-organization,.ex-zotero,.ex-reading-panel{padding:12px}}
@media(max-width:1000px){.ex-project-bar{grid-template-columns:1fr}}
@media(max-width:700px){.ex-zotero-connect{grid-template-columns:1fr}}
@media(max-width:600px){.paper-explorer{padding:0}.ex-fields{grid-template-columns:1fr}}

.ex-completion,.ex-author-maps{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}
.ex-completion h3{margin-top:0}
.ex-completion-papers{max-height:340px;overflow:auto;border-block:1px solid var(--line);padding:0}
.ex-completion-papers label{padding:8px 0;border-bottom:1px solid var(--line);font-weight:400}
.ex-completion-papers label:last-child{border-bottom:0}
.ex-completion-papers small{display:block;margin:6px 0 0 22px;color:var(--muted)}
.ex-completion pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}
.ex-import-conflicts fieldset{border:1px solid var(--amber-line);border-radius:var(--radius-card);padding:10px;margin:12px 0;background:var(--amber-soft);color:var(--amber-ink)}
.ex-import-conflicts p,.ex-seed-warnings{font-size:12.5px}
.ex-seed-warnings{padding-left:18px;margin:0;color:var(--amber-ink)}
.ex-author-map-grid{display:grid;grid-template-columns:minmax(380px,2fr) minmax(240px,1fr);gap:16px}
.ex-author-map-list{max-height:720px;overflow:auto}
.ex-author-map-list article{padding:12px 0;border-bottom:1px solid var(--line);margin:0}
.ex-author-map-inspector{padding:12px;background:var(--surface-2);border-radius:var(--radius-card);margin:8px 0}
.ex-author-map-list small{font-size:12px;color:var(--muted)}
.ex-author-map-inspector p{white-space:pre-wrap;font-size:13px}
.ex-citation{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}
.ex-citation textarea{white-space:pre-wrap}
.ex-citation p{font-size:12.5px}
#ex-author-map-history{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.ex-author-maps .ex-coverage pre{max-height:180px}
@media(max-width:1000px){.ex-author-map-grid{grid-template-columns:1fr}}
.ex-snapshot-insights{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-card);padding:16px;margin:16px 0;font-size:13px}
.ex-insight-terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.ex-insight-terms>h4,.ex-insight-terms>p{grid-column:1/-1}
.ex-insight-terms article,.ex-insight-authors article{padding:10px;border-radius:var(--radius-card);background:var(--surface-2)}
.ex-insight-terms article p{font-size:12.5px;overflow-wrap:anywhere}
.ex-insight-author-groups{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.ex-insight-authors>summary{font-weight:600;cursor:pointer}
.ex-insight-authors article{margin:8px 0}
.ex-insight-authors small{display:block;margin:7px 0;color:var(--muted);overflow-wrap:anywhere}
.ex-snapshot-insights pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto;font-size:12px}
.ex-term-review{border:1px solid var(--green-line);background:var(--green-wash);border-radius:var(--radius-card);padding:12px;margin:14px 0}
.ex-term-review h4{margin-top:0}
@media(max-width:700px){.ex-insight-author-groups{grid-template-columns:1fr}}
.ex-network-paths{border:1px solid var(--line);border-radius:var(--radius-card);padding:16px;background:var(--surface);margin:16px 0;font-size:13px}
.ex-network-paths>details{padding:10px 0;border-top:1px solid var(--line);margin:0}
.ex-network-paths summary{cursor:pointer}
.ex-network-paths li{margin:9px 0}
.ex-network-paths pre,.ex-query-plan pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;max-height:200px;overflow:auto}
.ex-query-plan{border-radius:var(--radius-card);padding:10px;margin:12px 0;background:var(--surface-2)}
.ex-query-plan p{font-size:12.5px}
.ex-query-plan code{white-space:pre-wrap;overflow-wrap:anywhere}
.paper-explorer #ex-network-options{background:var(--surface)}
.paper-explorer #ex-search-options>button{width:100%;margin:7px 0}
.ex-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* Graph tooltip: a floating sheet on the overlay layer, hairline plus small shadow. */
.ex-graph-tooltip{position:fixed;z-index:var(--z-overlay);width:380px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:hidden;pointer-events:none;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:15px 17px;box-sizing:border-box;font-size:12.5px;line-height:1.45;overflow-wrap:anywhere}
.ex-graph-tooltip[hidden]{display:none}
.ex-graph-tooltip strong{display:block;margin-bottom:8px;font-size:14px}
.ex-graph-tooltip p{margin:5px 0}
.ex-node.is-dimmed{opacity:.25}
:where(.ex-svg) .ex-node.is-neighbor circle{stroke-width:3}
:where(.ex-svg) .ex-node.is-selected circle{stroke-width:4}
:where(.ex-svg) .ex-node.is-selected.is-inspected circle{stroke-width:6}
.ex-edges line{pointer-events:stroke;stroke-width:5;stroke-opacity:.3;opacity:1}
.ex-edges line.is-dimmed{opacity:.18}
.ex-edges line.is-neighbor{stroke:var(--green);stroke-opacity:.72}
.ex-edges line:focus-visible{stroke:var(--green-strong);stroke-opacity:1;outline:none}
.ex-svg.animations-enabled .ex-edges line{stroke-dasharray:7 9;animation:ex-citation-flow 2.4s linear infinite}
.ex-selection-box{fill:color-mix(in oklch,var(--focus) 19%,transparent);stroke:var(--green);stroke-width:1.5;stroke-dasharray:5 4;pointer-events:none}
/* "Movimento do mapa" holds the animation preference and its note; the row's hairline is the details' own. */
.ex-map-presentation{margin:0}
.ex-map-presentation label{font-size:13px}
.ex-map-presentation label:first-child{margin-top:0}
.ex-map-presentation .ex-muted{max-width:72ch;margin-bottom:0}
/* Map bar, right above the frame as in the Grafo de referências: the presentation in a select as wide as its options (label above it),
   then the motion actions (network only) and "Configurar o mapa", lined up with the select. The motion line follows as a caption. */
.ex-map-bar{display:flex;align-items:flex-end;gap:6px;flex-wrap:wrap;margin:0 0 8px}
.paper-explorer .ex-map-bar label{display:grid;gap:5px;margin:0 6px 0 0;font-size:12.5px;font-weight:500;color:var(--ink-2)}
.paper-explorer .ex-map-bar select{width:auto;max-width:100%;margin-top:0;font-weight:400}
.paper-explorer .ex-map-status{min-height:20px;margin:0 0 8px;font-size:12.5px;line-height:1.55;color:var(--muted)}
/* Below the frame every row of the map reads as one list with the network panel's rows (force_graph.css): a hairline above each,
   the 32px summary carrying the row and room below only when open. That covers "Relações comprovadas", "Movimento do mapa", the
   navigation help graph_workspace.mjs folds (#ex-map-instructions) and "Exportar mapa em PNG". */
.paper-explorer .ex-map details.ex-relations,.paper-explorer .ex-map>details:is(.ex-settings,.ex-map-png,.ex-workspace-disclosure){margin:0;padding:0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.paper-explorer .ex-map details.ex-relations[open],.paper-explorer .ex-map>details:is(.ex-settings,.ex-map-png,.ex-workspace-disclosure)[open]{padding-bottom:14px}
.paper-explorer .ex-map details.ex-relations>summary,.paper-explorer .ex-map>details:is(.ex-settings,.ex-map-png,.ex-workspace-disclosure)>summary{cursor:pointer}
.paper-explorer .ex-map details.ex-relations[open]>summary,.paper-explorer .ex-map>details:is(.ex-settings,.ex-map-png,.ex-workspace-disclosure)[open]>summary{margin-bottom:6px}
/* The navigation help also holds the map's captions (graph_workspace.mjs placeMapCaptions): one column of notes at reading width. */
.paper-explorer #ex-map-instructions>p{max-width:72ch;margin:0 0 8px}
.paper-explorer #ex-map-instructions>p:last-child{margin-bottom:0}
/* Seleção da etapa: one bordered action ("Substituir sementes pela seleção"); selecting the page, clearing and saving are quiet .ghost
   actions in line, the first of a run reaching 10px left so its text keeps the panel's edge. */
.paper-explorer .ex-workspace-selection>button.ghost{width:auto;margin:2px 0 2px -10px}
.paper-explorer .ex-workspace-selection>button.ghost+button.ghost{margin-left:0}
.ex-settings [hidden]{display:none}
.ex-network-running .ex-node:not(.is-seed):not(.is-selected):not(.is-inspected):not(:hover):not(:focus) .ex-node-label{display:none}
@keyframes ex-citation-flow{from{stroke-dashoffset:0}to{stroke-dashoffset:-32}}
@media(prefers-reduced-motion:reduce){.ex-svg .ex-edges line{animation:none!important;stroke-dasharray:none!important}.paper-explorer :is(button,.ex-exports a,input,select,textarea){transition:none}.paper-explorer :is(button,.ex-exports a):not(:where([data-ex-crop-handle])):active{transform:none}}
.ex-edges line{pointer-events:none}
.ex-edges .ex-edge-hit{fill:none;stroke:transparent;stroke-width:16;stroke-dasharray:none;pointer-events:stroke;vector-effect:non-scaling-stroke}
.ex-source-choices label{display:flex;align-items:center;gap:7px;font-weight:500}
.ex-source-evidence,.ex-source-coverage,.ex-source-call-coverage{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
.ex-source-evidence pre,.ex-source-coverage pre,.ex-source-call-coverage pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;max-height:240px;overflow:auto}
.ex-reference-warning{padding:8px 10px;border:1px solid var(--amber-line);border-radius:var(--radius-card);background:var(--amber-soft);color:var(--amber-ink);font-size:12.5px}
.ex-disconnected-author{display:block;margin:5px 0;font-size:12px;color:var(--muted)}
.ex-disconnected-author small{display:block}
.ex-disconnected-author a{color:var(--ink)}
.ex-source-variant dl,.ex-source-observation dl,.ex-source-provenance dl{display:grid;grid-template-columns:minmax(105px,.8fr) minmax(0,1.2fr);gap:5px 10px;font-size:12.5px}
.ex-source-variant dt,.ex-source-observation dt,.ex-source-provenance dt{font-weight:600}
.ex-source-variant dd,.ex-source-observation dd,.ex-source-provenance dd{margin:0;overflow-wrap:anywhere}
.ex-source-observation,.ex-source-failures{padding:8px 0;border-bottom:1px solid var(--line)}
.ex-related-discovery{border-top:1px solid var(--line);padding:14px 0 0;margin-top:18px}
.ex-related-discovery dl{font-size:12.5px}
.ex-related-discovery dt{font-weight:600}
.ex-related-discovery dd{margin:3px 0 9px}
.ex-related-author-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.ex-related-author-list article{border-radius:var(--radius-card);background:var(--surface-2);padding:12px;min-width:0;overflow-wrap:anywhere}
.ex-related-author-list h5{margin:0 0 7px}
.ex-related-author-list p,.ex-related-author-list li{font-size:12.5px}
.ex-related-author-list ul{padding-left:20px}
.ex-seed-readiness{font-size:12.5px;background:var(--surface-2);border-radius:var(--radius-card);padding:9px;margin:7px 0}
.ex-seed-readiness.is-blocked{background:var(--amber-soft);border:1px solid var(--amber-line);color:var(--amber-ink)}
.ex-seed-readiness ul{padding-left:18px}

/* Dialogs: one frame, shadow instead of border, scrim behind. */
.ex-library-removal-dialog,.ex-duplicate-dialog,:is([data-article-author-paper-dialog],[data-aq-paper-dialog]){max-height:85vh;overflow:auto;border:0;border-radius:var(--radius-frame);padding:22px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lg);box-sizing:border-box}
.ex-library-removal-dialog{width:min(560px,calc(100vw - 36px))}
.ex-duplicate-dialog{width:min(590px,calc(100vw - 38px))}
:is([data-article-author-paper-dialog],[data-aq-paper-dialog]){width:min(680px,calc(100vw - 32px));padding:24px}
:is(.ex-library-removal-dialog,.ex-duplicate-dialog,[data-article-author-paper-dialog],[data-aq-paper-dialog])::backdrop{background:var(--scrim)}
:is([data-article-author-paper-dialog],[data-aq-paper-dialog]) h2{font-family:var(--font-display);font-size:18px;font-weight:600;line-height:1.3;margin:0 0 12px;color:var(--ink)}
:is([data-article-author-paper-dialog],[data-aq-paper-dialog]) p{line-height:1.55;overflow-wrap:anywhere;max-width:72ch}
:is([data-article-author-paper-dialog],[data-aq-paper-dialog]) pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;overflow:auto;font-size:12px;background:var(--surface-2);border-radius:var(--radius-card);padding:10px}
:is(.ex-library-removal-dialog,.ex-duplicate-dialog) h3{margin-top:0;font-size:18px}
.ex-library-removal-dialog dd{margin:3px 0 9px}
.ex-library-removals{border-top:1px solid var(--line);padding:14px 0 0;margin-top:14px}
.ex-library-removals article{padding:10px 0;border-bottom:1px solid var(--line)}

/* Focused research workspace: presentation only; stored paper axes remain unchanged. */
.ex-workspace-disclosure{border:1px solid var(--line);border-radius:var(--radius-card);padding:12px;background:var(--surface);margin:12px 0;min-width:0}
.ex-workspace-disclosure>summary{cursor:pointer;font-weight:600}
.ex-workspace-disclosure[open]>summary{margin-bottom:12px}
:is(.ex-map,.ex-next-panel,.ex-inspector,.ex-paper-list,.ex-start) .ex-workspace-disclosure{border:0;border-top:1px solid var(--line);border-radius:0;padding:10px 0;margin:0;background:transparent}
.ex-workspace-disclosure>:is(.ex-network-paths,.ex-snapshot-insights,.ex-coverage,.ex-project-bar){margin:0;border:0;border-radius:0;padding:0;background:transparent}
.ex-disclosure-meta{font-weight:400;color:var(--muted)}
#ex-point-of-start{margin:0;align-self:start}
#ex-point-of-start>.ex-start{border:0;padding:0;background:transparent}
/* Without a session the start column is always open, so it shows its own heading and no summary; with one, the summary names it
   ("Ponto de partida · sementes, bases e filtros") and the heading inside would only repeat it. */
.paper-explorer:not(.ex-focus-mode) #ex-point-of-start{padding:16px}
.paper-explorer:not(.ex-focus-mode) #ex-point-of-start>summary{display:none}
.paper-explorer:not(.ex-focus-mode) #ex-point-of-start .ex-start>:first-child{margin-top:0}
.ex-focus-mode #ex-point-of-start .ex-start-title{display:none}
#ex-project-options .ex-project-bar{margin:0}
/* With an exploration open, the work comes first and everything secondary follows as ONE sheet, 12px below the grid: the step's rows
   (.ex-step-rows, the last child of #ex-results), then "Ponto de partida" (last in the shell) and "Projeto e configurações" (right after
   the shell). Each part draws the sheet's sides; the hairline between parts is the next part's top border, so none doubles. Without step
   rows the sheet starts at "Ponto de partida". The library tools sheet follows 12px below. */
.ex-focus-mode .ex-shell{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.ex-focus-mode .ex-shell:has(>#ex-results>.ex-step-rows:last-child){gap:0}
.ex-focus-mode .ex-step-rows{margin:12px 0 0;border:1px solid var(--line);border-bottom:0;border-radius:var(--radius-card) var(--radius-card) 0 0;background:var(--surface)}
.paper-explorer.ex-focus-mode #ex-point-of-start{border:1px solid var(--line);border-bottom:0;border-radius:0;background:var(--surface)}
.paper-explorer.ex-focus-mode .ex-shell:not(:has(>#ex-results>.ex-step-rows:last-child)) #ex-point-of-start{border-radius:var(--radius-card) var(--radius-card) 0 0}
.paper-explorer.ex-focus-mode>#ex-project-options{margin:0;border:1px solid var(--line);border-radius:0 0 var(--radius-card) var(--radius-card);background:var(--surface)}
.paper-explorer.ex-focus-mode:not(:has(>#ex-project-options)) #ex-point-of-start{border-bottom:1px solid var(--line);border-radius:0 0 var(--radius-card) var(--radius-card)}
.ex-focus-mode>#ex-library-tools{margin:12px 0 0}
.ex-focus-mode #ex-results{order:0}
.ex-focus-mode #ex-point-of-start{order:1;width:100%;box-sizing:border-box}
.ex-focus-mode #ex-point-of-start .ex-start{max-width:880px;display:block}
.ex-focus-mode .ex-discovery-grid{grid-template-columns:minmax(210px,280px) minmax(260px,1fr) minmax(210px,260px);gap:12px;align-items:start}
.ex-focus-mode .ex-discovery-grid.mode-list{grid-template-columns:minmax(300px,1fr) minmax(240px,300px)}
.ex-focus-mode .ex-discovery-grid.mode-map{grid-template-columns:minmax(300px,1fr) minmax(220px,280px)}
.ex-focus-mode .ex-paper-list{max-height:78vh;overflow:auto}
.ex-focus-mode .ex-map{padding:10px;min-width:0;background:var(--surface)}
.ex-focus-mode .ex-svg{height:65vh;min-height:440px;max-height:780px}
.ex-focus-mode .ex-next-panel{min-width:0;max-height:calc(100dvh - var(--header-h) - 24px);overflow:auto;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);padding:12px;box-sizing:border-box;position:sticky;top:calc(var(--header-h) + 12px)}
.ex-focus-mode .ex-inspector{position:static;border:0;border-top:1px solid var(--line);border-radius:0;margin-top:14px;padding:14px 0 0;max-height:none;overflow:visible;grid-column:auto}
.ex-next-search h3,.ex-workspace-selection h3{margin:0 0 9px;font-size:15px}
.ex-next-search p,.ex-next-seeds p{font-size:12.5px;color:var(--muted)}
.ex-next-seeds{border-radius:var(--radius-card);background:var(--surface-2);padding:10px;margin:10px 0}
.ex-next-seeds>summary{cursor:pointer;font-weight:600}
.ex-next-seeds[open]{max-height:260px;overflow:auto}
.ex-next-search>button,.ex-workspace-selection>button{width:100%;margin:5px 0;text-align:left;justify-content:flex-start}
.ex-workspace-selection{border-top:1px solid var(--line);padding-top:13px;margin-top:13px}
.ex-workspace-selection>[data-ex-selected-count]{font-size:12.5px;color:var(--muted);display:block;margin:7px 0}
.ex-focus-mode .ex-toolbar{margin:12px 0;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}
.ex-focus-mode .ex-toolbar label{margin:0}
.ex-focus-mode .ex-graph-tools{padding-bottom:8px;border-bottom:1px solid var(--line)}
.ex-graph-tools,.ex-selection-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.paper-explorer .cm-control[data-ex-selection-mode][aria-pressed=true]{background-color:var(--green);color:var(--on-accent);border-color:var(--green)}
.ex-node>.ex-node-body{fill:var(--surface);stroke:var(--green);stroke-width:2}
.ex-node.is-seed>.ex-node-body{fill:var(--surface);stroke:#ac803b}
.ex-node.is-selected>.ex-node-body{stroke:var(--green-strong);stroke-width:4}
.ex-node.is-inspected>.ex-node-body{stroke:var(--green-strong);stroke-width:4}
.ex-seed-mark{fill:#bc914b;pointer-events:none}
.ex-seed-mark[hidden]{display:none}
.ex-node-check{fill:none;stroke:var(--green-strong);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.ex-focus-mode .ex-map>.ex-settings,.ex-focus-mode .ex-map>.ex-workspace-disclosure{background:transparent}
.ex-focus-mode .ex-map-caption{margin:8px 0}
.ex-graph-tooltip .ex-tooltip-kind{font-size:12px;font-weight:600;color:var(--muted);margin:0 0 8px}
.ex-graph-tooltip .ex-tooltip-title{font-size:15px;line-height:1.35;margin:0 0 10px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.ex-graph-tooltip .ex-tooltip-authors{color:var(--ink-2);margin-bottom:11px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.ex-tooltip-context{border-top:1px solid var(--line);padding-top:8px}
.ex-tooltip-counts{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--surface-2);border-radius:var(--radius);padding:8px;margin:10px 0}
.ex-graph-tooltip .ex-tooltip-counts p{margin:0;font-size:12.5px;font-weight:600}
.ex-graph-tooltip .ex-tooltip-instruction{font-size:12px;line-height:1.4;color:var(--muted);border-top:1px solid var(--line);padding-top:9px;margin:10px 0 0}
.ex-tooltip-citation{line-height:1.5}
@media(max-height:480px){.ex-graph-tooltip{padding:10px 13px}.ex-graph-tooltip .ex-tooltip-title{-webkit-line-clamp:2;font-size:13px}.ex-graph-tooltip .ex-tooltip-authors{-webkit-line-clamp:1}.ex-tooltip-counts{margin:7px 0;padding:6px}.ex-tooltip-context p{margin:3px 0}}
@media(max-width:1199px){.ex-focus-mode .ex-discovery-grid{grid-template-columns:minmax(190px,240px) minmax(260px,1fr)}.ex-focus-mode .ex-next-panel{grid-column:1/-1;position:static;max-height:none;display:grid;grid-template-columns:minmax(200px,1fr) minmax(200px,1fr);gap:14px}.ex-focus-mode .ex-next-panel>.ex-inspector{grid-column:1/-1}.ex-focus-mode .ex-next-panel>.ex-workspace-selection{border-top:0;margin:0;padding:0}.ex-focus-mode .ex-discovery-grid.mode-map,.ex-focus-mode .ex-discovery-grid.mode-list{grid-template-columns:1fr}}
@media(max-width:800px){.ex-focus-mode .ex-discovery-grid{grid-template-columns:1fr}.ex-focus-mode .ex-next-panel{display:block}.ex-focus-mode .ex-svg{height:55vh;min-height:300px}.ex-focus-mode .ex-paper-list{max-height:50vh}.ex-focus-mode .ex-next-panel>.ex-workspace-selection{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}}
.ex-focus-mode .ex-result-header{margin:0 0 8px;scroll-margin-top:calc(var(--header-h) + 16px)}
.ex-focus-mode .ex-result-header h2{font-size:18px;margin:0 0 5px}
.ex-focus-mode .ex-result-header p{font-size:12.5px;line-height:1.4;margin:0;color:var(--muted)}
.ex-focus-mode .ex-toolbar{margin:8px 0 10px}
.ex-focus-mode #ex-completion-options>.ex-completion{margin:0;border:0;padding:0;background:transparent}

/* Library duplicates */
.ex-library-duplicates{margin:16px 0 0;padding:16px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.ex-library-duplicates p,[data-ex-painted-duplicate] small{font-size:12.5px;line-height:1.45;max-width:72ch}
.ex-library-duplicates[hidden]{display:none}
[data-ex-painted-duplicate]{display:block;margin:8px 0}
[data-ex-painted-duplicate] small{display:block;color:var(--muted);margin:6px 0}
.ex-duplicate-dialog[hidden]{display:none}
.ex-duplicate-dialog p,.ex-duplicate-dialog li{font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.ex-duplicate-dialog details{border-top:1px solid var(--line);padding:10px 0;margin:10px 0 0}
.ex-duplicate-dialog summary{cursor:pointer;font-weight:600}
.ex-duplicate-dialog ul{max-height:240px;overflow:auto;padding-left:22px}
.ex-duplicate-dialog select{width:100%;box-sizing:border-box;max-width:100%}
.ex-duplicate-dialog input[type=checkbox]{width:16px;display:inline-block;margin:0 6px 0 0;vertical-align:-3px}
.ex-duplicate-dialog dd{margin:3px 0 8px}
.ex-duplicate-dialog dt{font-weight:600;font-size:12.5px}
.ex-duplicate-receipt{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
.ex-duplicate-target-tree,.ex-duplicate-target-tree ul{list-style:none;padding-left:17px;margin:7px 0}
.ex-duplicate-target-tree{padding-left:0;max-height:240px;overflow:auto}
.paper-explorer .ex-duplicate-target-tree button{width:100%;text-align:left;margin:2px 0;font-size:12.5px;border-color:transparent;background-color:transparent}
.paper-explorer .ex-duplicate-target-tree [aria-selected=true]{background-color:var(--green-soft);color:var(--ink);border-color:var(--green-line);font-weight:600}
.ex-duplicate-dialog [data-ex-duplicates-tree]{border:1px solid var(--control-line);border-radius:var(--radius);background:var(--surface);padding:6px;max-height:270px;overflow:auto}
.ex-duplicate-dialog [data-ex-duplicates-create-details]>summary{font-weight:600}
.ex-duplicate-dialog [data-ex-duplicates-action=refresh-collections]{margin-top:8px}
.ex-author-filter-audit{font-size:12.5px;background:var(--surface-2);border-radius:var(--radius-card);padding:10px;margin:10px 0}
.ex-author-filter-audit summary{cursor:pointer;font-weight:600}
.ex-author-filter-audit p{overflow-wrap:anywhere}
