/* /dc/bva-search, Advanced Search V3 layout (2026-09-10).
   Scoped to the search page's own class names (bvas-*). Colours are tokens
   only, so both dark-mode mechanisms (data-theme and the media mirror) apply
   with no second rule. THE BUTTON LAW: every clickable card or button carries
   the 2px accent border plus the card-fx glow (cardfx-pop). */

/* ---- About this search tool: collapsed on every viewport ---- */
.bvas-hero-more { margin: .35rem 0 .6rem; border: 1px solid var(--color-border); border-left: 4px solid var(--color-accent); border-radius: var(--radius-sm, 8px); background: var(--color-surface); }
.bvas-hero-more > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; padding: .6rem .9rem; cursor: pointer; list-style: none; border: 2px solid var(--color-accent); border-radius: var(--radius-sm, 6px); font-weight: 700; color: var(--color-primary); user-select: none; }
.bvas-hero-more > summary::-webkit-details-marker { display: none; }
.bvas-hero-more > summary::marker { content: ''; }
.bvas-hero-more > summary:hover { border-color: var(--color-primary); }
.bvas-hero-more > summary:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 2px; }
.bvas-hero-summary-title { font-size: .95rem; }
.bvas-hero-toggle { display: inline-flex; align-items: center; gap: .4rem; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--color-primary); }
.bvas-toggle-open { display: none; }
.bvas-hero-more[open] .bvas-toggle-open { display: inline; }
.bvas-hero-more[open] .bvas-toggle-closed { display: none; }
.bvas-disc-caret { transition: transform .12s; }
.bvas-hero-more[open] .bvas-disc-caret { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { .bvas-disc-caret { transition: none; } }
.bvas-hero-copy { padding: .25rem 1rem 1rem; }
.bvas-hero-copy > p { margin: 0 auto .85rem; max-width: var(--prose-measure, 72ch); font-size: .95rem; line-height: 1.65; color: var(--color-text); }
.bvas-hero-copy .bvas-hero-note { font-size: .85rem; color: var(--color-text-muted); }
.bvas-hero-copy .bvas-related-link { font-size: .85rem; border-top: 1px solid var(--color-border); padding-top: .6rem; margin-bottom: 0; }

/* ---- Mode tabs ---- */
.bvas-modes { display: flex; flex-wrap: wrap; gap: .35rem; border-bottom: 1px solid var(--color-border); margin: 1rem 0 .9rem; }
.bvas-mode-opt { position: relative; }
.bvas-mode-opt[hidden] { display: none; }
.bvas-mode-opt input { position: absolute; opacity: 0; width: 0; height: 0; }
.bvas-mode-opt span { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem 1rem; font-size: .92rem; font-weight: 600; border: 2px solid var(--color-accent); border-bottom: 0; border-radius: var(--radius-sm, 6px) var(--radius-sm, 6px) 0 0; color: var(--color-text-muted); background: var(--color-bg); cursor: pointer; transition: color .12s, background .12s, border-color .12s; }
.bvas-mode-opt span:hover { color: var(--color-primary); border-color: var(--color-primary); }
.bvas-mode-opt input:checked + span { color: var(--color-primary); background: var(--color-surface); box-shadow: inset 0 -3px var(--color-accent); }
.bvas-mode-opt input:focus-visible + span { outline: 3px solid var(--color-primary); outline-offset: 2px; }

/* ---- Search surface ---- */
.bvas-surface { background: var(--color-surface); border: 2px solid var(--color-accent); border-radius: var(--radius-md, 10px); padding: 1.1rem 1.15rem 1rem; margin: 0 0 1.1rem; }
.bvas-section-head { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; }
.bvas-section-head h2 { margin: 0; font-size: 1.15rem; color: var(--color-primary); }
.bvas-surface .bvas-guide-link { font-size: .85rem; font-weight: 600; color: var(--color-primary); }
.bvas-surface form { margin-top: .85rem; }
/* Top-aligned, not bottom-aligned (fixed 2026-09-11, owner report). Both
   columns are label-over-control with the same label size and the same 44px
   control, so aligning the TOPS lines the input and the select up exactly.
   Bottom alignment lined up the wrong edge: picking "Rulings only" or
   "Findings only" reveals the slice note inside the right column, which made
   that column taller, and flex-end then pushed the select 39px ABOVE the input
   at every desktop width. The note now grows downward and moves nothing. */
.bvas-search-row { display: flex; gap: .75rem; align-items: flex-start; flex-wrap: wrap; }
.bvas-search-row .bvas-q-label { flex: 1 1 320px; display: flex; flex-direction: column; gap: .25rem; font-size: .82rem; font-weight: 600; color: var(--color-text-muted); }
.bvas-search-row input[type="search"] { width: 100%; box-sizing: border-box; min-height: 44px; padding: .6rem .8rem; font-size: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm, 6px); background: var(--color-bg); color: var(--color-text); }
.bvas-searchin { flex: 0 1 300px; display: flex; flex-direction: column; gap: .25rem; }
.bvas-searchin label { display: flex; flex-direction: column; gap: .25rem; font-size: .82rem; font-weight: 600; color: var(--color-text-muted); }
.bvas-searchin select { min-height: 44px; padding: .5rem .6rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm, 6px); background: var(--color-bg); color: var(--color-text); font-size: .92rem; font-weight: 500; max-width: 100%; }
.bvas-searchin .bvas-field-note[hidden], .bvas-q-label[hidden], .bvas-searchin[hidden] { display: none; }
.bvas-mode-purpose { margin: .6rem 0 0; font-size: .88rem; color: var(--color-text-muted); }
.bvas-tips { font-size: .82rem; color: var(--color-text-muted); margin-top: .4rem; }
.bvas-tips code { background: var(--color-bg); padding: .05rem .3rem; border-radius: 3px; font-size: .85em; }
.bvas-input-warn { margin: .6rem 0 0; padding: .7rem .9rem; border: 1px solid var(--color-warning); border-left: 4px solid var(--color-warning); border-radius: 6px; background: color-mix(in srgb, var(--color-warning) 8%, var(--color-surface)); color: var(--color-text); font-size: .92rem; line-height: 1.45; }
.bvas-input-warn strong { color: var(--color-text-strong, var(--color-text)); }
.bvas-input-warn[hidden] { display: none; }

/* Common criteria row */
.bvas-common { display: grid; grid-template-columns: 1.4fr 1.15fr .7fr .7fr .9fr 1.15fr; gap: .75rem; border-top: 1px solid var(--color-border); padding-top: .85rem; margin-top: .85rem; }
.bvas-common > label { display: flex; flex-direction: column; gap: .25rem; font-size: .82rem; font-weight: 600; color: var(--color-text-muted); min-width: 0; }
.bvas-common select, .bvas-common input[type="text"] { min-height: 44px; padding: .5rem .6rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm, 6px); background: var(--color-bg); color: var(--color-text); font-size: .95rem; font-weight: 400; max-width: 100%; box-sizing: border-box; width: 100%; }
.bvas-common input:disabled, .bvas-common select:disabled { opacity: .55; cursor: not-allowed; }
.bvas-common > label[hidden] { display: none; }
.bvas-common .bvas-field-note { font-weight: 400; }
.bvas-years-note { margin: .4rem 0 0; }
.bvas-years-note[hidden] { display: none; }
.bvas-field-note { font-size: .74rem; color: var(--color-text-muted); margin-top: .15rem; line-height: 1.35; font-weight: 400; }
.bvas-field-note[hidden] { display: none; }

/* Judge setup (Judge research mode) */
.bvas-judge-setup { border: 1px solid var(--color-border); border-radius: var(--radius-sm, 6px); background: var(--color-bg); padding: .85rem .9rem .6rem; margin-bottom: .85rem; }
.bvas-judge-setup[hidden] { display: none; }
.bvas-judge-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.bvas-judge-inputs label { display: flex; flex-direction: column; gap: .25rem; font-size: .82rem; font-weight: 600; color: var(--color-text-muted); }
.bvas-judge-inputs input { min-height: 44px; padding: .5rem .7rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm, 6px); background: var(--color-surface); color: var(--color-text); font-size: .95rem; font-weight: 400; width: 100%; box-sizing: border-box; }
.bvas-judge-inputs input:disabled { opacity: .55; cursor: not-allowed; }
.bvas-jr-check { display: flex; align-items: flex-start; gap: .5rem; margin: .7rem 0 .2rem; font-size: .88rem; color: var(--color-text); cursor: pointer; }
.bvas-jr-check input { width: 1.1rem; height: 1.1rem; margin-top: .15rem; accent-color: var(--color-primary); flex: 0 0 auto; }
.bvas-jr-check input:disabled + span { opacity: .6; }
.bvas-jr-check > span { display: flex; flex-direction: column; gap: .15rem; }

/* Explore builder */
.bvas-explore-controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-top: .85rem; padding: .85rem .9rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm, 6px); background: var(--color-bg); }
.bvas-explore-controls[hidden] { display: none; }
.bvas-explore-controls label { display: flex; flex-direction: column; gap: .25rem; font-size: .8rem; font-weight: 600; color: var(--color-text-muted); min-width: 0; }
.bvas-explore-controls select, .bvas-explore-controls input { min-height: 44px; padding: .45rem .55rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm, 6px); background: var(--color-surface); color: var(--color-text); font-size: .9rem; font-weight: 500; max-width: 100%; width: 100%; box-sizing: border-box; }
.bvas-explore-controls select:disabled { opacity: .55; cursor: not-allowed; }

/* Actions */
.bvas-search-actions { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; margin: 1rem 0 .5rem; }
.bvas-search-actions button { min-height: 46px; padding: .6rem 1.2rem; font-size: 1rem; font-weight: 700; border-radius: var(--radius-sm, 6px); cursor: pointer; border: 2px solid var(--color-accent); }
#bvas-submit { background: var(--color-primary); color: var(--color-on-primary); }
#bvas-submit:hover { background: var(--color-primary-dark); }
#bvas-submit[disabled] { opacity: .55; cursor: not-allowed; }
.bvas-reset-btn { background: var(--color-surface); color: var(--color-primary); }
.bvas-reset-btn:hover { border-color: var(--color-primary); }
.bvas-reset-scope { font-size: .78rem; color: var(--color-text-muted); margin: 0 0 .5rem; padding-left: .7rem; border-left: 2px solid var(--color-accent); }
.bvas-pending { font-size: .85rem; font-weight: 600; color: var(--color-primary); margin: .5rem 0 0; }
.bvas-pending[hidden] { display: none; }
.bvas-notice { background: color-mix(in srgb, var(--color-accent) 12%, var(--color-surface)); border-left: 3px solid var(--color-accent); border-radius: 4px; padding: .7rem .9rem; font-size: .85rem; line-height: 1.5; color: var(--color-text); margin: .6rem 0; }
.bvas-notice[hidden] { display: none; }
/* An empty status notice draws nothing but STAYS in the accessibility tree.
   `#bvas-shell-status` is a live region: hiding it between announcements meant
   the next message was already present when the region reappeared, and several
   screen readers say nothing in that case. It is emptied instead of hidden, so
   this rule has to remove the box without removing the element. */
.bvas-notice:empty { padding: 0; border: 0; margin: 0; }
.bvas-notice strong { display: block; margin-bottom: .2rem; }
.bvas-notice ul { margin: .3rem 0 0; padding-left: 1.2rem; }

/* ---- Workspace: rail + output ---- */
.bvas-workspace { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 1.25rem; align-items: start; margin-top: .5rem; }
.bvas-workspace--simple { display: block; }
.bvas-rail { position: sticky; top: 12px; display: grid; grid-template-rows: auto auto auto minmax(150px, 1fr) auto; max-height: calc(100dvh - 24px); overflow: hidden; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md, 10px); padding: .9rem; }
.bvas-rail[hidden] { display: none; }
.bvas-rail .bvas-section-head h2 { font-size: 1.05rem; }
.bvas-rail .bvas-hint { font-size: .78rem; color: var(--color-text-muted); margin: .4rem 0 .7rem; line-height: 1.5; }
.bvas-count { font-size: .78rem; font-weight: 800; border-radius: 999px; background: var(--color-bg-alt); color: var(--color-text); padding: .15rem .6rem; }
.bvas-filter-find { display: flex; flex-direction: column; gap: .25rem; font-size: .8rem; font-weight: 600; color: var(--color-text-muted); margin-bottom: .5rem; }
.bvas-filter-find input { min-height: 40px; padding: .4rem .6rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm, 6px); background: var(--color-bg); color: var(--color-text); font-size: .85rem; font-weight: 400; }
#bvas-filter-directory { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding-right: 4px; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
#bvas-filter-directory, #bvas-filter-nav, #bvas-filter-fields { scrollbar-width: auto; scrollbar-color: var(--color-accent) var(--color-bg-alt); }
#bvas-filter-directory::-webkit-scrollbar, #bvas-filter-nav::-webkit-scrollbar, #bvas-filter-fields::-webkit-scrollbar { width: 12px; }
#bvas-filter-directory::-webkit-scrollbar-track, #bvas-filter-nav::-webkit-scrollbar-track, #bvas-filter-fields::-webkit-scrollbar-track { background: var(--color-bg-alt); }
#bvas-filter-directory::-webkit-scrollbar-thumb, #bvas-filter-nav::-webkit-scrollbar-thumb, #bvas-filter-fields::-webkit-scrollbar-thumb { background: var(--color-accent); border: 3px solid var(--color-bg-alt); border-radius: 10px; }
.bvas-group-btn { display: block; width: 100%; text-align: left; border: 0; border-top: 1px solid var(--color-border); border-radius: 0; padding: .6rem .35rem; background: none; color: var(--color-text); cursor: pointer; font: inherit; min-height: 44px; }
.bvas-group-btn:first-child { border-top: 0; }
.bvas-group-btn strong { display: flex; justify-content: space-between; gap: .5rem; font-size: .86rem; color: var(--color-primary); }
.bvas-group-btn small { display: block; color: var(--color-text-muted); font-size: .74rem; margin-top: .1rem; line-height: 1.35; }
.bvas-group-btn:hover, .bvas-group-btn:focus-visible { background: var(--color-bg-alt); outline: none; }
.bvas-group-btn[aria-current="true"] { background: color-mix(in srgb, var(--color-accent) 14%, var(--color-surface)); box-shadow: inset 3px 0 var(--color-accent); padding-left: .7rem; }
.bvas-group-count { font-weight: 800; color: var(--color-text); }
.bvas-empty-filter { font-size: .8rem; color: var(--color-text-muted); padding: 1rem 0; }
.bvas-rail-actions { padding-top: .4rem; display: grid; gap: .35rem; }
.bvas-wide { width: 100%; }
#bvas-all-filters { min-height: 44px; padding: .55rem .8rem; border: 2px solid var(--color-accent); border-radius: var(--radius-sm, 6px); background: var(--color-primary); color: var(--color-on-primary); font-weight: 700; cursor: pointer; font-size: .92rem; }
#bvas-all-filters:hover { background: var(--color-primary-dark); }
.bvas-text-btn { border: none; background: none; padding: .5rem 0; min-height: 44px; color: var(--color-primary); text-align: left; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; font: inherit; font-size: .88rem; }
.bvas-text-btn:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 2px; }
.bvas-reset-link { color: var(--color-danger, #8b3f2f); }
.bvas-result-region { min-width: 0; outline: none; }
#bvas-selected-filters[hidden] { display: none; }
.bvas-selection-bar { padding-bottom: .5rem; }
.bvas-selection-bar .bvas-section-head strong { font-size: .8rem; color: var(--color-text-muted); }
.bvas-chips { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .4rem; }
.bvas-chip-applied { display: inline-flex; align-items: center; gap: .3rem; min-height: 36px; font-size: .78rem; padding: .3rem .7rem; border: 2px solid var(--color-accent); border-radius: 999px; background: var(--color-surface); color: var(--color-text); cursor: pointer; font-weight: 400; }
.bvas-chip-applied b { font-weight: 700; }
.bvas-chip-applied:hover { border-color: var(--color-primary); }
.bvas-chip-applied.is-retained { border-style: dashed; color: var(--color-text-muted); }
.bvas-results-meta { display: flex; justify-content: space-between; align-items: baseline; gap: .75rem; flex-wrap: wrap; margin: .75rem 0 .5rem; font-size: .85rem; color: var(--color-text-muted); }
.bvas-results-meta[hidden] { display: none; }
.bvas-results-actions { display: inline-flex; gap: .4rem; flex-wrap: wrap; }
.bvas-order { display: grid; gap: .1rem; margin: 0 0 .75rem; font-size: .78rem; color: var(--color-text-muted); }
.bvas-order[hidden] { display: none; }
.bvas-order .bvas-order-k { font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 800; }
.bvas-order strong { font-size: .92rem; color: var(--color-text); }
.bvas-chip { min-height: 36px; }

/* ---- Dialogs (filter editor, reset, save) ---- */
.bvas-dialog { background: var(--color-surface); color: var(--color-text); border: 2px solid var(--color-accent); border-radius: 14px; width: min(960px, calc(100vw - 40px)); max-height: calc(100dvh - 50px); padding: 0; box-shadow: 0 25px 100px rgba(0, 0, 0, .35); }
.bvas-dialog::backdrop { background: rgba(7, 22, 39, .68); }
.bvas-dialog--narrow { width: min(640px, calc(100vw - 40px)); }
.bvas-dialog-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.3rem; border-bottom: 1px solid var(--color-border); }
.bvas-dialog-head h2 { margin: 0; font-size: 1.2rem; color: var(--color-primary); }
.bvas-eyebrow { font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--color-text-muted); margin: 0 0 .2rem; }
.bvas-dialog-close { flex: 0 0 auto; min-width: 44px; min-height: 44px; border: 2px solid var(--color-accent); border-radius: var(--radius-sm, 6px); background: transparent; color: var(--color-text); font-size: 1.4rem; line-height: 1; cursor: pointer; }
.bvas-dialog-close:hover { background: var(--color-bg-alt); }
.bvas-dialog-body { position: relative; display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: 0; height: min(560px, 65dvh); overflow: hidden; }
#bvas-filter-nav { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; border-right: 1px solid var(--color-border); padding: .6rem; }
#bvas-filter-fields { min-height: 0; overflow-y: scroll; overscroll-behavior: contain; scrollbar-gutter: stable both-edges; padding: 1.25rem 1.4rem 3rem; }
#bvas-filter-fields:focus-visible, #bvas-filter-nav:focus-visible, #bvas-filter-directory:focus-visible { outline: 3px solid var(--color-primary); outline-offset: -3px; }
.bvas-fgroup[hidden] { display: none; }
.bvas-fgroup h3 { margin: 0 0 .3rem; font-size: 1.25rem; color: var(--color-primary); }
.bvas-fgroup .bvas-hint { font-size: .82rem; color: var(--color-text-muted); margin: 0 0 1rem; line-height: 1.5; }
.bvas-field-stack { display: grid; gap: 1.1rem; }
.bvas-field-stack > label { display: flex; flex-direction: column; gap: .25rem; font-size: .82rem; font-weight: 600; color: var(--color-text-muted); }
.bvas-field-stack select, .bvas-field-stack input[type="text"] { min-height: 44px; padding: .5rem .6rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm, 6px); background: var(--color-bg); color: var(--color-text); font-size: .95rem; font-weight: 400; width: 100%; box-sizing: border-box; }
.bvas-field-stack select:disabled, .bvas-field-stack input:disabled { opacity: .55; cursor: not-allowed; }
.bvas-check-field { display: flex; flex-direction: row; align-items: flex-start; gap: .55rem; font-size: .88rem; font-weight: 400; color: var(--color-text); cursor: pointer; min-height: 44px; }
.bvas-check-field input { width: 1.15rem; height: 1.15rem; margin-top: .15rem; accent-color: var(--color-primary); flex: 0 0 auto; }
.bvas-check-field input:disabled + span { opacity: .6; }
/* A column flex container makes every child its OWN row, and a text node
   counts as a child: "Reviewed by the Court (", <abbr>CAVC</abbr> and ")"
   came out on three separate lines, and "Same claim only:" sat above its
   own sentence. The label has to stay inline text; only the note below it
   is a block. :not([hidden]) because this selector outranks the
   .bvas-field-note[hidden] rule above and would otherwise reveal a note
   the page had hidden. (2026-09-11) */
.bvas-check-field > span { display: block; }
.bvas-check-field > span > .bvas-field-note:not([hidden]) { display: block; }
.bvas-toggle-group { border: 0; padding: 0; margin: 0; }
.bvas-toggle-group legend { font-size: .82rem; font-weight: 600; color: var(--color-text-muted); padding: 0; margin-bottom: .6rem; }
.bvas-checkboxes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem .9rem; }
.bvas-checkboxes label { display: flex; align-items: center; gap: .5rem; min-height: 44px; font-size: .9rem; color: var(--color-text); cursor: pointer; padding: .2rem .35rem; border-radius: var(--radius-sm, 6px); }
.bvas-checkboxes label:hover { background: var(--color-bg-alt); }
.bvas-checkboxes input[type="checkbox"] { width: 1.15rem; height: 1.15rem; accent-color: var(--color-primary); flex: 0 0 auto; }
.bvas-toggle-group .bvas-field-note { margin-top: .5rem; }
.bvas-fields-cue { position: absolute; right: 22px; bottom: 10px; z-index: 3; padding: .3rem .6rem; border: 1px solid var(--color-accent); border-radius: 20px; background: color-mix(in srgb, var(--color-accent) 14%, var(--color-surface)); color: var(--color-primary); font-size: .72rem; font-weight: 800; pointer-events: none; box-shadow: 0 3px 10px rgba(0, 0, 0, .15); }
.bvas-fields-cue[hidden] { display: none; }
.bvas-dialog-foot { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; padding: .85rem 1.3rem; border-top: 1px solid var(--color-border); background: var(--color-bg-alt); position: relative; z-index: 2; }
.bvas-dialog-foot > span { flex: 1 1 auto; font-size: .8rem; color: var(--color-text-muted); }
.bvas-dialog-foot #bvas-dialog-reset { margin-right: auto; }
.bvas-dialog-foot button:not(.bvas-text-btn) { min-height: 44px; padding: .55rem 1rem; font-size: .92rem; font-weight: 700; border: 2px solid var(--color-accent); border-radius: var(--radius-sm, 6px); background: var(--color-surface); color: var(--color-primary); cursor: pointer; }
.bvas-dialog-foot button.bvas-primary { background: var(--color-primary); color: var(--color-on-primary); }
.bvas-dialog-foot button.bvas-primary:hover { background: var(--color-primary-dark); }
.bvas-dialog-foot button[disabled] { opacity: .55; cursor: not-allowed; }
.bvas-reset-copy, .bvas-save-copy { padding: 1.1rem 1.3rem; overflow: auto; max-height: 60dvh; }
.bvas-reset-copy p, .bvas-save-copy p { margin: 0 auto .8rem; max-width: var(--prose-measure, 72ch); font-size: .92rem; line-height: 1.55; }
.bvas-reset-matrix { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: .8rem 0 0; }
.bvas-reset-matrix > div { border: 1px solid var(--color-border); border-radius: 8px; padding: .8rem .9rem; }
.bvas-reset-matrix h3 { margin: 0 0 .4rem; font-size: .95rem; color: var(--color-primary); }
.bvas-reset-matrix ul { margin: 0 auto; padding-left: 1.2rem; font-size: .85rem; line-height: 1.55; max-width: var(--prose-measure, 72ch); }
.bvas-save-copy label { display: flex; flex-direction: column; gap: .25rem; font-size: .82rem; font-weight: 600; color: var(--color-text-muted); margin-bottom: .8rem; }
.bvas-save-copy input[type="text"] { min-height: 44px; padding: .5rem .6rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm, 6px); background: var(--color-bg); color: var(--color-text); font-size: .95rem; font-weight: 400; }
.bvas-save-copy .bvas-check-field { flex-direction: row; font-size: .92rem; color: var(--color-text); }
.bvas-save-copy .bvas-error { margin-top: .5rem; padding: .6rem .8rem; text-align: left; }
.bvas-save-copy .bvas-error[hidden] { display: none; }

/* ---- Breakpoints ---- */
@media (max-width: 1050px) {
  .bvas-common { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bvas-workspace { grid-template-columns: 225px minmax(0, 1fr); }
  .bvas-explore-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .bvas-modes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem; border-bottom: 0; }
  .bvas-mode-opt span { width: 100%; box-sizing: border-box; justify-content: center; font-size: .85rem; padding: .5rem .5rem; border-bottom: 2px solid var(--color-accent); border-radius: var(--radius-sm, 6px); }
  .bvas-mode-opt input:checked + span { box-shadow: inset 0 0 0 2px var(--color-primary); }
  .bvas-surface { padding: .9rem .8rem; }
  .bvas-search-row { flex-direction: column; align-items: stretch; }
  .bvas-searchin { flex-basis: auto; }
  .bvas-common { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
  .bvas-common .bvas-common-cond { grid-column: 1 / -1; }
  .bvas-judge-inputs { grid-template-columns: 1fr; }
  .bvas-explore-controls { grid-template-columns: 1fr; }
  .bvas-search-actions { display: grid; grid-template-columns: 1fr; }
  .bvas-search-actions button { width: 100%; }
  .bvas-workspace { display: block; }
  .bvas-rail { position: static; max-height: none; display: block; margin-bottom: 1rem; }
  .bvas-filter-find { display: none; }
  #bvas-filter-directory { display: block; max-height: 260px; overflow-y: auto; }
  .bvas-dialog { width: 100vw; max-width: 100vw; max-height: 100dvh; height: 100dvh; border-radius: 0; margin: 0; border-width: 0; }
  .bvas-dialog--narrow { height: auto; max-height: 100dvh; }
  .bvas-dialog-head { padding: .8rem .9rem; }
  .bvas-dialog-body { grid-template-columns: 1fr; grid-template-rows: minmax(120px, 30dvh) minmax(0, 1fr); height: calc(100dvh - 140px); }
  #bvas-filter-nav { border-right: 0; border-bottom: 1px solid var(--color-border); padding: .4rem; }
  #bvas-filter-fields { padding: 1rem .9rem 3rem; }
  .bvas-checkboxes { grid-template-columns: 1fr; }
  .bvas-dialog-foot { display: grid; grid-template-columns: 1fr 1fr; padding: .6rem .8rem; gap: .5rem; }
  .bvas-dialog-foot #bvas-dialog-reset { grid-column: 1 / -1; margin: 0; }
  .bvas-dialog-foot > span { display: none; }
  .bvas-reset-matrix { grid-template-columns: 1fr; }
  .bvas-results-meta { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 480px) {
  .bvas-modes { grid-template-columns: 1fr 1fr; }
  .bvas-common { grid-template-columns: 1fr 1fr; }
  #bvas-filter-directory { max-height: 240px; }
}
