.app,.app-main,.screen,.topbar,.ws { min-width:0; }
.knowledge-chrome { position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--line); }
.knowledge-chrome .topbar { border:0; }
/* Brand switcher: a rounded pill that opens a rounded panel, with the brand colour as a small dot. */
.brand-select { position:relative;margin:0 16px 10px; }
.brand-pill { display:flex;align-items:center;gap:9px;width:100%;min-width:0;border:1px solid var(--line-2);border-radius:24px;padding:9px 14px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s ease,background .15s ease; }
.brand-pill:hover { border-color:var(--line-3,var(--line-2)); }
.brand-pill[aria-expanded="true"] { border-color:var(--marker-line);background:var(--marker-soft); }
.brand-pill-name { flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left; }
.brand-chev { display:inline-flex;flex:none;color:var(--muted);transition:transform .18s cubic-bezier(.2,.8,.3,1); }
.brand-select.open .brand-chev { transform:rotate(180deg); }
.brand-dot { flex:none;width:9px;height:9px;border-radius:50%;background:var(--marker);box-shadow:0 0 0 1px rgba(255,255,255,.14) inset; }
.brand-menu { position:absolute;z-index:30;left:0;right:0;top:calc(100% + 6px);padding:6px;border:1px solid var(--line-2);border-radius:16px;background:var(--surface);box-shadow:0 18px 40px rgba(0,0,0,.45);transform-origin:top center;opacity:0;transform:translateY(-6px) scale(.98);transition:opacity .16s ease,transform .16s cubic-bezier(.2,.8,.3,1); }
.brand-select.shown .brand-menu { opacity:1;transform:none; }
.brand-option { display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:11px;padding:10px 12px;background:none;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer; }
.brand-option:hover { background:var(--surface-2,rgba(255,255,255,.05)); }
.brand-option[aria-selected="true"] { color:var(--text); background:var(--marker-soft); box-shadow:inset 2px 0 0 var(--marker); }
.brand-option-name { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
@media (prefers-reduced-motion: reduce) { .brand-menu,.brand-chev { transition:none; } }
.knowledge-modes { display:flex;padding:0 12px;gap:3px; }
.knowledge-modes button { flex:1;min-width:0;border:0;border-bottom:2px solid transparent;padding:10px 2px;background:none;color:var(--text-2);font-size:12px; }
.knowledge-modes button[aria-current] { color:var(--marker);border-color:var(--marker); }
.category-pills { display:flex;gap:6px;overflow:auto;max-width:100%;padding:14px 0 8px; }
.category-pills button { flex:none;border:1px solid var(--line-2);border-radius:20px;background:var(--surface);padding:6px 11px;font-size:12px; }
.category-pills button[aria-pressed=true] { background:var(--marker);color:var(--marker-ink); }
.knowledge-card { content-visibility:auto;contain-intrinsic-size:0 110px;padding:18px 0;border-bottom:1px solid var(--line-2);scroll-margin-top:12px;overflow-wrap:anywhere;transition:opacity .2s; }
.knowledge-card h2 { font-size:17px;font-weight:500;margin:9px 0; }
.clause-source { display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--text-2); }
.clause-ref { flex:none;font-family:var(--mono);color:var(--marker); }
.knowledge-body { white-space:pre-wrap;line-height:1.7;font-size:13px;color:var(--text-2); }
/* A wall of policy text by default; the reader opens the rest when they want it. */
.knowledge-body.clamped { max-height:11em;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 60%,transparent);mask-image:linear-gradient(180deg,#000 60%,transparent); }
.clause-more { display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:4px 10px 4px 8px;border:1px solid var(--line-2);border-radius:999px;background:none;color:var(--text-2);font-size:11.5px; }
.clause-more:hover { color:var(--text); }
.clause-more svg { width:14px;height:14px;transition:transform .2s; }
.clause-more[aria-expanded=true] svg { transform:rotate(180deg); }
.clause-actions { display:flex;flex-wrap:wrap;gap:6px;margin-top:12px; }
.clause-actions .btn { font-size:11px;min-height:32px;padding:6px 8px; }
.entity { padding:1px 2px;border-radius:3px; }
.entity-value { color:#9ce6bd;background:#163024; }
.entity-deadline { color:#f5d289;background:#332a18; }
.entity-restriction { color:#ffb6c5;background:#3a1d29; }
.map-document-title { margin:26px 0 4px;font-family:var(--serif);font-size:25px;font-weight:400; }
.map-breadcrumb { color:var(--text-2);font-size:12px;margin:12px 0;overflow-wrap:anywhere; }
.spotlight { border-left:3px solid var(--marker);padding-left:12px; }
.spotlight-sibling { opacity:.45; }
.exact-quote { background:var(--marker-soft);color:var(--text); }
.admin-form { display:grid;gap:14px;margin:20px 0; }
.admin-form label { display:grid;gap:6px;color:var(--text-2);font-size:12px; }
.admin-form input,.admin-form textarea,.admin-form select { min-width:0;width:100%; }
.admin-row { padding:18px 0;border-bottom:1px solid var(--line-2);overflow-wrap:anywhere; }
.admin-row h2 { font-size:17px;margin:0 0 7px; }
.admin-links { display:flex;flex-wrap:wrap;gap:8px;margin:14px 0; }
.brand-swatch { display:inline-block;width:12px;height:12px;border-radius:4px;border:1px solid var(--line-2);vertical-align:baseline; }
/* A brand colour chip next to a name: small, round, with room to breathe. */
h2 > .brand-dot, .row .brand-dot { display:inline-block;width:9px;height:9px;margin-right:10px;border-radius:50%;vertical-align:middle; }
.color-input { width:100%;min-height:40px;padding:4px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg-2); }
.field.checkbox { display:flex;align-items:center;gap:8px; }
.field.checkbox > span { font-size:12.5px;color:var(--text-2); }
.field.checkbox input { width:auto;min-height:auto;flex:none; }
.missing { display:grid;gap:4px;margin-top:6px; }
.missing-q { margin:0;padding-left:14px;position:relative; }
.missing-q::before { content:"?";position:absolute;left:0;color:var(--marker);font-family:var(--serif); }
.search-results { margin-top:4px; }
/* Internal guidance: never tinted with the brand accent, so it cannot read as a published policy. */
.chip-internal { display:inline-flex;align-items:center;padding:1px 7px;border-radius:5px;font-family:var(--mono);font-size:10.5px;color:var(--internal);background:var(--internal-soft);border:1px solid var(--internal-line);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis; }
.internal-note { margin:18px 0;padding:14px;border-radius:var(--r);border:1px solid var(--internal-line);background:var(--internal-soft); }
.internal-note .label { color:var(--internal); }
.internal-row { margin-top:10px;display:grid;gap:6px; }
.internal-text { margin:0;white-space:pre-wrap;line-height:1.65;font-size:13px;color:var(--text-2); }
.map-document { display:block; }
@media(prefers-reduced-motion:reduce) { .knowledge-card { transition:none; } .app-main { scroll-behavior:auto; } }
/* The hosted demo's paste-your-own-policy box: part of the composer, above the redaction note. */
.own-policy { padding:12px 0 2px;border-top:1px solid var(--line);margin-top:10px; }
.own-policy textarea { font-size:13px;min-height:84px; }
/* The body of an internal note, when the agent opens it from the clause list. */
.internal-warn { color:var(--internal);margin:0 0 6px; }

/* Policy & Knowledge: a crumb, a serif section title with its Add button, an optional note, then one card of rows. */
.pk-section { margin-top:24px; }
/* The divider sits between sections, with air under it: a rule flush against the next title cut through its letters
   because a 27px serif overflows a 28px line box. Both the padding and the taller line-height keep them apart. */
.pk-section + .pk-section { border-top:1px solid var(--line); padding-top:6px; }
.pk-crumb { display:inline-flex;align-items:center;gap:4px;margin:16px 0 4px;border:0;padding:0;background:none;color:var(--text-2);font:inherit;font-size:13px;cursor:pointer; }
.pk-crumb svg { width:14px;height:14px;opacity:.75; }
.pk-crumb:hover { color:var(--text); }
.pk-head { display:flex;align-items:center;gap:12px; }
.pk-head .slab-title { flex:1;min-width:0; }
.slab-title { margin:0;font-family:var(--serif);font-weight:400;font-size:27px;line-height:1.25;letter-spacing:-.015em; }
.slab-title em { font-style:italic; }
.pk-note { margin:8px 0 0;color:var(--text-2);font-size:13px; }
.rows-card { margin-top:16px;border-radius:16px;background:var(--surface-2);overflow:hidden; }
.pk-row { display:flex;align-items:flex-start;gap:12px;width:100%;padding:13px 16px;border:0;border-top:1px solid var(--line);background:none;color:inherit;font:inherit;text-align:left; }
.rows-card > .pk-row:first-child { border-top:0; }
button.pk-row { cursor:pointer; }
.pk-row:hover { background:rgba(238,232,221,.03); }
.pk-pick { display:flex;align-items:center;gap:11px;flex:1;min-width:0;border:0;padding:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer; }
.pk-main { flex:1;min-width:0;display:flex;flex-direction:column;gap:3px; }
.pk-title { display:inline-flex;align-items:center;font-size:14px;font-weight:600;min-width:0; }
.pk-meta { font-size:12px;color:var(--muted); }
.pk-actions { display:flex;align-items:center;gap:8px;flex:none; }
.pk-active { margin-right:2px;font-size:12px;color:var(--muted); }
.doc-ico { display:inline-flex;flex:none;color:var(--muted); }
.doc-ico svg { width:16px;height:16px; }
.pk-chev { flex:none;display:inline-flex;color:var(--muted); }
.pk-chev svg { width:16px;height:16px; }
.pk-blank { margin:0;padding:15px 16px;color:var(--muted);font-size:13px; }
@media (max-width:360px) { .pk-row { flex-wrap:wrap; } .pk-actions { width:100%;justify-content:flex-end; } }

/* Conversations: the earlier questions of the chat, one collapsed line each. */
.turns { margin-bottom:18px; }
.turn-wrap { border-bottom:1px solid var(--line); }
.turn { display:flex;align-items:center;gap:10px;width:100%;border:0;padding:11px 0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer; }
.turn-q { flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px; }
.turn-meta { flex:none;font-size:11px;color:var(--muted); }
.turn[aria-expanded="true"] .rel-chev { transform:rotate(180deg); }
.turn-body { padding:0 0 12px; }
.ask-intro.compact { margin-bottom:10px; }

/* The conversation limit: a quiet line until it is reached, then the block with the way out. */
.limit-bubble { display:inline-block;margin:8px 0 0;padding:6px 12px;border:1px solid var(--marker-line);border-radius:999px;background:var(--marker-soft);color:var(--text-2);font-size:12px; }
.banner.limit { align-items:flex-start; }
.link.strong { border:0;padding:0;background:none;color:var(--marker);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer; }

/* A shelf: one clause as a row; its sub-clauses live inside the same card, not as rows of their own. */
.shelf-wrap { border-top:1px solid var(--line); }
.rows-card > .shelf-wrap:first-child { border-top:0; }
.rows-card > .shelf-wrap > .shelf-row { border-top:0; }
.shelf-row[aria-expanded="true"] .pk-chev { transform:rotate(180deg); }
.shelf-row .chip-clause { flex:none;margin-top:1px; }
.shelf-body { display:grid;gap:20px;padding:2px 16px 16px; }
.shelf-body .sub-text { margin:0; }
.sub-clause { display:grid;gap:8px; }
.sub-clause > .chip-clause.sub { justify-self:start; }
.sub-heading { font-size:13.5px;font-weight:600;color:var(--text); }
.shelf-row.spotlight { border-left:3px solid var(--marker); }
@media(prefers-reduced-motion:reduce) { .shelf-row .pk-chev { transition:none; } }

/* Clause text as blocks: air between paragraphs, lists indented by their own level. */
.block { margin:0; }
.block + .block { margin-top:10px; }
.block.para { line-height:1.62; }
.block.heading { font-weight:600; letter-spacing:.01em; }
.block.list { display:grid;gap:6px;border-top:0; }
.block.list[data-level="2"] { padding-left:14px; }
.block.list[data-level="3"] { padding-left:28px; }
.block.list .li { display:flex;gap:9px;line-height:1.55; }
.block.list .marker { flex:none;min-width:1.6em;color:var(--marker);font-family:var(--mono);font-size:12px;line-height:1.75; }
.block.list .li-text { flex:1;min-width:0; }
/* A list entry that is itself a wall of text keeps its paragraphs. */
.block.list .li-text .seg { display:block; }
.block.list .li-text .seg + .seg { margin-top:8px; }
.sub-text { display:grid;gap:2px; }
.policy-text .block + .block { margin-top:10px; }

/* Marks from the formatting pass: emphasis that can never change a word, only dress it. */
.sub-text b { font-weight:650; }
.sub-text i { font-style:italic; }
.sub-text u { text-decoration:underline; text-decoration-color:var(--marker-line); text-underline-offset:3px; }
/* Emphasis from the formatting pass: a light tint, not a bar. A search hit stays a search hit. */
.sub-text .mk-hl { background:color-mix(in srgb, var(--marker) 18%, transparent); color:var(--text); padding:1px 2px; margin:0 -2px; border-radius:3px; }
.sub-text mark { background:rgba(255,214,120,.22); color:var(--text); padding:0 2px; margin:0 -2px; border-radius:3px; box-shadow: inset 0 -1px 0 rgba(255,214,120,.55); }
.sub-text.flows { margin-left:0; }

/* Sub-clauses that are entries of the parent list keep that list"s rhythm, whatever card they came from. */
.block.list.flows { margin-top:10px; }
.block.list .li-rest { display:block; }


/* ---------- Clean style: the imported policy as a calm, readable page ---------- */
/* The Clean rule in panel.css paints <mark> as a solid accent bar; a search hit stays the same warm wash in both styles. */
[data-policy-style="clean"] .sub-text mark { background:rgba(255,214,120,.22); color:var(--text); box-shadow:inset 0 -1px 0 rgba(255,214,120,.55); }
[data-policy-style="clean"] .sub-text { color:#DCD5C8; font-size:14.5px; line-height:1.68; }
[data-policy-style="clean"] .sub-text .block + .block { margin-top:12px; }
[data-policy-style="clean"] .sub-text .block.para { line-height:1.68; max-width:68ch; }
[data-policy-style="clean"] .sub-text b { color:var(--text); font-weight:620; }
[data-policy-style="clean"] .sub-text .block.heading { margin-top:18px; font-size:11.5px; font-weight:600; letter-spacing:.08em; color:var(--text-2); }
[data-policy-style="clean"] .sub-text .block.heading:first-child { margin-top:0; }
[data-policy-style="clean"] .block.list { gap:7px; }
[data-policy-style="clean"] .block.list .li { line-height:1.6; }
[data-policy-style="clean"] .block.list .marker { font-size:11.5px; line-height:1.95; }

/* Enumerations the source numbered but meant as bullets (see isBulletList). */
.block.list.bullets { gap:4px; }
.block.list.bullets .marker { min-width:.9em; font-family:var(--font); font-size:15px; line-height:1.5; text-align:center; color:var(--marker); cursor:default; }
.paper .block.list.bullets .marker { line-height:1.4; }

/* A title written in capitals: same letters, set small and tracked so it stops shouting. */
.pk-title.caps, .sub-heading.caps { font-size:12px; letter-spacing:.06em; line-height:1.5; }

/* Entity tints were drawn for the dark page; on paper they need their own, or they read as stains. */
.paper .entity-value { color:#1E6B45; background:rgba(30,107,69,.10); }
.paper .entity-deadline { color:#7A5410; background:rgba(160,110,20,.12); }
.paper .entity-restriction { color:#8E2443; background:rgba(142,36,67,.09); }

/* Emphasis that breaks a block of prose up: a visible but quiet underline, italics a shade brighter in Clean. */
.sub-text u { text-decoration-thickness:1.5px; text-decoration-color:color-mix(in srgb, var(--marker) 60%, transparent); text-underline-offset:3px; text-decoration-skip-ink:auto; }
[data-policy-style="clean"] .sub-text i { color:var(--text); }
[data-policy-style="classic"] .paper b.mk { color:#16130E; }

/* Settings: account deletion stays closed and quiet until someone goes looking for it. */
.delete-account summary { cursor: pointer; padding: 12px 0; text-align: center; list-style: none; }
.delete-account summary::-webkit-details-marker { display: none; }
.delete-account[open] summary { color: var(--redline); }
.delete-account .form { padding: 4px 0 8px; }

/* ---------- Raw imported text: the first row of Search Knowledge, and the live layout animation ---------- */
.layout-row { padding:12px 14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--marker-soft),transparent 70%);position:relative; }
.rows-card > .layout-row:first-child { border-radius:var(--r) var(--r) 0 0; }
.lr-head { display:flex;gap:10px;align-items:center; }
.lr-badge { flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--marker-line);color:var(--marker);background:var(--marker-soft); }
.lr-badge svg { width:15px;height:15px; }
.lr-badge.spin svg { animation:lr-spin 3.2s linear infinite; }
.lr-main { display:grid;gap:2px;min-width:0; }
.lr-title { font-size:13.5px;line-height:1.3;font-weight:600;color:var(--text); }
.lr-meta { font-size:12px;color:var(--text-2);overflow-wrap:anywhere; }
.lr-hint { margin:10px 0 0;font-size:13px;line-height:1.55;color:var(--text-2); }
.lr-actions { display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap; }
.lr-actions .btn { gap:7px; }
.lr-actions .btn svg { width:15px;height:15px; }
.lr-status { margin:0;font-size:12.5px;color:var(--text-2);min-height:1.4em; }
.lr-stage { margin-top:10px; }
.lr-scan { position:relative;overflow:hidden;padding:8px 10px 6px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--bg-2); }
.lr-line { display:flex;gap:9px;align-items:baseline;padding:3px 0;font-size:12px;line-height:1.4;color:var(--text-2);opacity:.38;white-space:nowrap;overflow:hidden;animation:lr-line 2.8s ease-in-out infinite;animation-delay:calc(var(--i) * .38s); }
.lr-text { overflow:hidden;text-overflow:ellipsis; }
.lr-tag { flex:none;width:1.4em;text-align:center;font:600 11px var(--mono);color:var(--marker);opacity:0;transform:scale(.6);animation:lr-tag 2.8s ease-in-out infinite;animation-delay:calc(var(--i) * .38s); }
.lr-beam { position:absolute;left:0;right:0;top:-40px;height:40px;pointer-events:none;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--marker) 34%,transparent),transparent);border-bottom:1px solid color-mix(in srgb,var(--marker) 55%,transparent);animation:lr-sweep 2.8s ease-in-out infinite; }
.lr-line .mk-b { animation:lr-bold 2.8s ease-in-out infinite;animation-delay:calc(var(--i) * .38s); }
.lr-line .mk-u { background:linear-gradient(var(--marker),var(--marker)) 0 100%/0 1.5px no-repeat;animation:lr-under 2.8s ease-in-out infinite;animation-delay:calc(var(--i) * .38s); }
.lr-line .mk-h { animation:lr-wash 2.8s ease-in-out infinite;animation-delay:calc(var(--i) * .38s);border-radius:3px; }
.lr-bar { display:flex;gap:4px;margin-top:8px; }
.lr-bar i { flex:1;height:3px;border-radius:2px;background:var(--line-2);overflow:hidden;position:relative; }
.lr-bar i:not(.ok):not(.bad)::after { content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--marker),transparent);animation:lr-slide 1.3s linear infinite; }
.lr-bar i.ok { background:var(--sage); } .lr-bar i.bad { background:var(--redline); }
.layout-row.done { background:linear-gradient(180deg,var(--sage-soft),transparent 70%); }
.layout-row.done .lr-badge { color:var(--sage);border-color:color-mix(in srgb,var(--sage) 45%,transparent);background:var(--sage-soft); }
.layout-row.failed { background:linear-gradient(180deg,var(--redline-soft),transparent 70%); }
@keyframes lr-sweep { 0% { top:-40px; } 100% { top:100%; } }
@keyframes lr-line { 0%,6%,100% { opacity:.38; } 22%,70% { opacity:1;color:var(--text); } }
@keyframes lr-tag { 0%,12%,100% { opacity:0;transform:scale(.6); } 26%,70% { opacity:1;transform:scale(1); } }
@keyframes lr-bold { 0%,30%,100% { color:inherit;text-shadow:none; } 45%,70% { color:var(--text);text-shadow:0 0 .6px currentColor,0 0 .6px currentColor; } }
@keyframes lr-under { 0%,34%,100% { background-size:0 1.5px; } 55%,75% { background-size:100% 1.5px; } }
@keyframes lr-wash { 0%,34%,100% { background:transparent; } 52%,75% { background:rgba(255,214,120,.22); } }
@keyframes lr-slide { from { transform:translateX(-100%); } to { transform:translateX(100%); } }
@keyframes lr-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) {
  .lr-line { animation:none;opacity:1; } .lr-tag { animation:none;opacity:1;transform:none; } .lr-beam { display:none; }
  .lr-line .mk-b,.lr-line .mk-u,.lr-line .mk-h,.lr-badge.spin svg,.lr-bar i::after { animation:none; }
  .lr-line .mk-b { color:var(--text);font-weight:600; } .lr-line .mk-u { background-size:100% 1.5px; } .lr-line .mk-h { background:rgba(255,214,120,.22); }
}

.layout-row.kept { padding:7px 14px;background:none; }
.lr-kept { display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap; }

/* ---------- Search Knowledge: one field, quiet filters, clause rows ---------- */
.knowledge-screen > .title { font-size:26px; margin-bottom:14px; }
.search-field { position:relative; display:flex; align-items:center; }
.search-field .input { min-height:42px; padding:0 40px 0 36px; border-radius:12px; background:var(--bg-2); transition:border-color .15s, box-shadow .15s; }
.search-field .input:focus { outline:none; border-color:var(--marker-line); box-shadow:0 0 0 3px var(--marker-soft); }
.search-field .input::-webkit-search-cancel-button { -webkit-appearance:none; display:none; }
.search-ico { position:absolute; left:12px; display:inline-flex; color:var(--muted); pointer-events:none; }
.search-ico svg { width:16px; height:16px; }
.search-key { position:absolute; right:11px; padding:0 6px; border:1px solid var(--line-2); border-radius:5px; font:10.5px/18px var(--mono); color:var(--muted); pointer-events:none; transition:opacity .15s; }
.search-field:focus-within .search-key, .search-field:has(.search-clear:not([hidden])) .search-key { opacity:0; }
.search-clear { position:absolute; right:5px; width:32px; height:32px; }
.search-clear svg { width:15px; height:15px; }
.category-pills { gap:5px; padding:10px 0 4px; scrollbar-width:none; -webkit-mask-image:linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask-image:linear-gradient(90deg, #000 calc(100% - 28px), transparent); }
.category-pills::-webkit-scrollbar { display:none; }
.category-pills button { display:inline-flex; align-items:center; gap:6px; padding:4px 10px; background:transparent; color:var(--text-2); font-size:11.5px; transition:background .15s, color .15s, border-color .15s; }
.category-pills button:hover { color:var(--text); }
.category-pills button[aria-pressed=true] { background:var(--marker-soft); border-color:var(--marker-line); color:var(--text); }
.pill-count { font-family:var(--mono); font-size:10px; color:var(--muted); }
.pill-count:empty { display:none; }
.category-pills button[aria-pressed=true] .pill-count { color:var(--marker); }
.search-status { min-height:1.4em; margin:6px 2px 6px; font-family:var(--mono); font-size:10.5px; letter-spacing:.04em; color:var(--muted); }

.hits { display:grid; gap:2px; }
.hit-wrap { border-radius:12px; transition:background .15s, box-shadow .15s; }
.hit-wrap:has(> .hit[aria-expanded=true]) { background:var(--surface); box-shadow:inset 0 0 0 1px var(--line); }
.hit { display:grid; gap:3px; width:100%; padding:10px 12px; border:0; border-radius:12px; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.hit:hover { background:var(--surface); }
.hit:focus-visible { outline:2px solid var(--marker-line); outline-offset:-2px; }
.hit-top { display:flex; align-items:baseline; gap:8px; min-width:0; }
.hit-ref { flex:none; font-family:var(--mono); font-size:11px; color:var(--marker); }
.hit-title { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13.5px; font-weight:600; color:var(--text); }
.hit-chev { flex:none; margin-left:auto; display:inline-flex; align-self:center; color:var(--muted); transition:transform .2s var(--ease); }
.hit-chev svg { width:14px; height:14px; }
.hit[aria-expanded=true] .hit-chev { transform:rotate(180deg); }
.hit-snip { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:12.5px; line-height:1.5; color:var(--text-2); }
.hit[aria-expanded=true] .hit-snip { display:none; }
.hit mark { margin:0 -1px; padding:0 2px; border-radius:3px; background:color-mix(in srgb, var(--marker) 22%, transparent); color:var(--text); }
.hit-src { display:flex; align-items:center; gap:6px; min-width:0; font-size:11px; color:var(--muted); }
.hit-src > span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hit-internal { flex:none; padding:0 6px; border-radius:4px; border:1px solid var(--internal-line); background:var(--internal-soft); font-family:var(--mono); font-size:10px; color:var(--internal); }
.hit-wrap.internal .hit-ref { color:var(--internal); }
.hit-body { padding:0 12px 12px; animation:hit-open .22s var(--ease) both; }
@keyframes hit-open { from { opacity:0; transform:translateY(-4px); } }
.hit-body .paper, .hit-body .sub-text { margin:0; font-size:13px; }
.hit-actions { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }
.hit-actions .btn svg { width:14px; height:14px; }
.hit-actions .ghost { margin-left:auto; background:none; border-color:transparent; color:var(--text-2); }
.hit-actions .ghost:hover { color:var(--text); }

/* Browsing with an empty box: one line per section, the count set to the right. */
.rows-card.browse { margin-top:4px; border-radius:12px; }
.rows-card.browse .pk-row { align-items:center; padding:10px 14px; }
.rows-card.browse .pk-main { flex-direction:row; align-items:baseline; justify-content:space-between; gap:10px; }
.rows-card.browse .pk-title { font-size:13.5px; font-weight:560; }
.rows-card.browse .pk-meta { flex:none; font-family:var(--mono); font-size:10.5px; }
.rows-card.browse .chip-clause { margin-top:0; }
@media (prefers-reduced-motion: reduce) { .hit-body { animation:none; } }
.rows-card.browse .shelf-row .chip-clause { min-width:46px; justify-content:center; }
