/* Ledger Matters Workspace — app chrome. Adapted from the lawandcrime-design
   ui_kits/infrastructure kit, plus Ledger-specific additions (login, forms,
   AI-provenance badges, linked-record lists). */
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { font-family: var(--font-text); background: var(--lc-paper); color: var(--text-body); }

.app { display: grid; grid-template-columns: var(--sidebar-w) 1fr; height: 100vh; overflow: hidden; }

/* ---- Sidebar ---- */
.side { background: var(--lc-navy); color: var(--lc-paper); display: flex; flex-direction: column; border-right: 1px solid var(--lc-slate-900); }
.side__brand { padding: 18px 20px 16px; border-bottom: 1px solid var(--lc-slate-900); display: flex; flex-direction: column; gap: 10px; }
.side__brand img { height: 22px; align-self: flex-start; }
.side__home { background: none; border: 0; padding: 0; cursor: pointer; align-self: flex-start; display: flex; }
.side__home:focus-visible { outline: 2px solid var(--lc-yellow); outline-offset: 3px; }
.side__tape { align-self: flex-start; background: var(--lc-yellow); color: #000; font-family: var(--font-display); font-size: 13px; letter-spacing: .08em; padding: 2px 8px 0; }
.side__nav { padding: 14px 12px; display: flex; flex-direction: column; gap: 2px; flex: 1; }
.side__sectlabel { font-size: 9.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--lc-slate-500); padding: 14px 12px 6px; }
.navitem { display: flex; align-items: center; gap: 11px; padding: 9px 12px; border-radius: var(--radius-md); color: var(--lc-slate-300); font-size: 13.5px; font-weight: 600; cursor: pointer; border: none; background: none; text-align: left; width: 100%; transition: background var(--dur-fast), color var(--dur-fast); }
.navitem svg { width: 18px; height: 18px; }
.navitem:hover { background: rgba(255,255,255,.05); color: #fff; }
.navitem--active { background: var(--lc-slate-900); color: #fff; box-shadow: inset 3px 0 0 var(--lc-yellow); }
/* App-grouped sidebar (2026-09-18). An APP heading (.appnav) is a different kind
   of thing from a PAGE (.navitem--sub): bigger, bolder, and the only level with a
   chevron. Pages are indented under the heading with a hairline rail, so which app
   a page belongs to reads at a glance. */
.appgroup + .appgroup { margin-top: 4px; }
.appgroup--in + .appgroup, .appgroup + .appgroup--in { margin-top: 10px; }
.appnav { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: var(--radius-md); color: var(--lc-slate-300); font-size: 14px; font-weight: 700; letter-spacing: .01em; cursor: pointer; border: none; background: none; text-align: left; width: 100%; transition: background var(--dur-fast), color var(--dur-fast); }
.appnav svg { width: 18px; height: 18px; flex: none; }
.appnav:hover { background: rgba(255,255,255,.05); color: #fff; }
.appnav--in { color: #fff; }
.appnav--here { background: var(--lc-slate-900); box-shadow: inset 3px 0 0 var(--lc-yellow); }
.appnav__chev { margin-left: auto; display: inline-flex; color: var(--lc-slate-500); }
.appnav__chev svg { width: 14px !important; height: 14px !important; }
.appgroup__subs { display: flex; flex-direction: column; gap: 1px; margin: 2px 0 4px 21px; padding-left: 8px; border-left: 1px solid var(--lc-slate-900); }
.navitem--sub { padding: 7px 10px; font-size: 13px; font-weight: 500; gap: 9px; }
.navitem--sub svg { width: 15px; height: 15px; }
.navitem--sub.navitem--active { font-weight: 600; }
.side__foot { padding: 14px; border-top: 1px solid var(--lc-slate-900); display: flex; align-items: center; gap: 10px; }
.side__foot .u { display: flex; flex-direction: column; gap: 1px; min-width: 0; flex: 1; }
.side__foot .u b { font-size: 12.5px; color: #fff; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.side__foot .u span { font-size: 11px; color: var(--lc-slate-500); }
.side__foot button.signout { margin-left: auto; background: none; border: none; color: var(--lc-slate-500); cursor: pointer; padding: 6px; border-radius: var(--radius-md); display: flex; }
.side__foot button.signout:hover { color: #fff; background: rgba(255,255,255,.06); }
.side__foot button.signout svg { width: 16px; height: 16px; }

/* ---- Main ---- */
.main { display: flex; flex-direction: column; min-width: 0; height: 100vh; }
.topbar { height: var(--topbar-h); border-bottom: 1px solid var(--border-hair); background: var(--lc-paper-2); display: flex; align-items: center; gap: 16px; padding: 0 22px; flex: none; }
.topbar__search { flex: 1; max-width: 460px; }
.topbar__spacer { flex: 1; }
.topbar__actions { display: flex; align-items: center; gap: 6px; }
.content { flex: 1; overflow-y: auto; padding: 26px 28px 60px; }

/* ---- Topbar type-ahead ---- */
.ta { position: relative; }
.ta-field { display: flex; align-items: center; gap: 8px; background: var(--lc-paper); border: 1px solid var(--border-hair); border-radius: 9px; padding: 0 12px; height: 38px; transition: border-color var(--dur-fast), box-shadow var(--dur-fast); }
.ta-field:focus-within { border-color: var(--lc-navy); box-shadow: 0 0 0 3px rgba(26,42,74,.10); }
.ta-ic { width: 16px; height: 16px; color: var(--lc-slate-500); flex: none; }
.ta-input { flex: 1; border: none; background: none; outline: none; font-family: var(--font-text); font-size: 13.5px; color: var(--lc-ink); }
.ta-spin { width: 15px; height: 15px; color: var(--lc-slate-400); flex: none; animation: ta-rot 1s linear infinite; }
@keyframes ta-rot { to { transform: rotate(360deg); } }
.ta-menu { position: absolute; top: calc(100% + 6px); left: 0; right: 0; background: var(--lc-paper, #fff); border: 1px solid var(--border-hair); border-radius: 10px; box-shadow: 0 16px 44px rgba(10,16,30,.20); padding: 6px; z-index: 1200; max-height: 64vh; overflow-y: auto; }
.ta-item { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; border: none; background: none; cursor: pointer; padding: 8px 10px; border-radius: 7px; }
.ta-item--hi, .ta-item:hover { background: rgba(252,238,33,.16); }
.ta-item-ic { width: 16px; height: 16px; color: var(--lc-slate-500); flex: none; }
.ta-item-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ta-item-main b { font-size: 13px; font-weight: 700; color: var(--lc-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ta-item-main span { font-size: 11.5px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ta-item-kind { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--lc-slate-500); border: 1px solid var(--border-hair); border-radius: 999px; padding: 2px 8px; flex: none; }
.ta-all { display: flex; align-items: center; gap: 7px; width: 100%; border: none; background: none; cursor: pointer; padding: 9px 10px; margin-top: 4px; border-top: 1px solid var(--border-hair); color: var(--text-link); font-size: 12px; font-weight: 700; }
.ta-all:hover { color: var(--lc-red-blood); }
.ta-all i, .ta-all svg { width: 13px; height: 13px; }
.ta-empty { padding: 12px 10px; font-size: 12.5px; color: var(--text-muted); }

/* ---- Shared page bits ---- */
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.page-title { font-family: var(--font-display); font-size: 46px; line-height: .9; letter-spacing: .01em; color: var(--lc-ink); text-transform: uppercase; margin: 6px 0 0; }
.eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--lc-red-deep); }

.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid var(--border-hair); border-radius: var(--radius-lg); overflow: hidden; background: var(--lc-paper-2); margin-bottom: 24px; }
.kpis > .cell { padding: 18px 20px; border-right: 1px solid var(--border-hair); }
.kpis > .cell:last-child { border-right: none; }
/* Home "Today" tiles (B6): five across, wrapping on narrow screens */
.kpis--5 { grid-template-columns: repeat(5, 1fr); }
.home-tiles-seg { margin-bottom: 12px; }
@media (max-width: 900px) {
  .kpis--5 { grid-template-columns: repeat(3, 1fr); }
  .kpis--5 > .cell { border-bottom: 1px solid var(--border-hair); }
}
@media (max-width: 560px) { .kpis--5 { grid-template-columns: repeat(2, 1fr); } }

.grid-2 { display: grid; grid-template-columns: 1.6fr 1fr; gap: 18px; }
.section-label { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.section-label h3 { font-family: var(--font-text); font-weight: 800; font-size: 15px; letter-spacing: .01em; color: var(--lc-ink); margin: 0; }
.section-label .ct { font-size: 12px; color: var(--text-muted); font-weight: 600; }

/* ---- Table ---- */
.tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tbl thead th { text-align: left; font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); padding: 10px 14px; border-bottom: 2px solid var(--lc-ink); }
/* Sortable table headers (SortKit.jsx). The button inherits the header cell's
   type so a sortable column and a fixed one read as the same kind of thing —
   the only difference is the chevron and that it responds. The neutral
   chevron pair is always drawn, never hover-only: an affordance that appears
   on hover is not discoverable on a first visit and does not exist at all on
   a touch screen. Shared by `.tbl` and the Asset Requests desk's own table. */
.th-sort { padding: 0 !important; }
.th-sort > button {
  display: inline-flex; align-items: center; gap: 5px; width: 100%;
  font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit;
  background: none; border: 0; cursor: pointer; text-align: inherit;
  padding: 10px 14px;
}
.opsq-table .th-sort > button { padding: 10px 12px; }
.th-sort > button:hover { color: var(--lc-ink); }
.th-sort > button svg { width: 13px; height: 13px; opacity: .45; flex: none; }
.th-sort > button:hover svg { opacity: .8; }
.th-sort--on > button { color: var(--lc-ink); }
.th-sort--on > button svg { opacity: 1; color: var(--lc-red, #E71D25); }
/* Keyboard focus has to be visible: these are the only buttons in a table head. */
.th-sort > button:focus-visible { outline: 2px solid var(--lc-yellow, #FCEE21); outline-offset: -2px; }

.tbl tbody td { padding: 13px 14px; border-bottom: 1px solid var(--border-hair); vertical-align: middle; }
.tbl tbody tr { cursor: pointer; transition: background var(--dur-fast); }
.tbl tbody tr:hover { background: rgba(252,238,33,.10); }
.tbl tbody tr.is-priority { box-shadow: inset 3px 0 0 var(--lc-yellow); }
.tbl .cid { font-variant-numeric: tabular-nums; color: var(--text-muted); font-weight: 600; font-size: 12.5px; }
.tbl .cname { font-weight: 700; color: var(--lc-ink); }
.tbl .cdef { color: var(--text-muted); font-size: 12.5px; }

.crumb { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text-muted); margin-bottom: 4px; cursor: pointer; }
.crumb:hover { color: var(--lc-ink); }
.crumb svg { width: 14px; height: 14px; }

/* ---- Empty / loading states ---- */
.ledger-empty { border: 1px dashed var(--lc-slate-300); border-radius: 12px; padding: 60px 20px; text-align: center; color: var(--text-muted); background: var(--lc-paper-2); }
.ledger-empty i { width: 30px; height: 30px; color: var(--lc-slate-300); }
.ledger-empty b { display: block; margin-top: 12px; font-weight: 600; font-size: 14px; color: var(--lc-ink); }
.ledger-empty span { font-size: 13px; }

/* ---- Login screen ---- */
.login { min-height: 100vh; display: grid; place-items: center; background: var(--lc-navy); padding: 24px; }
.login__card { width: 100%; max-width: 400px; background: var(--lc-paper-2); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); overflow: hidden; }
.login__top { background: var(--lc-navy); padding: 26px 28px 22px; border-bottom: 4px solid var(--lc-yellow); }
.login__top img { height: 24px; display: block; }
.login__tape { display: inline-block; margin-top: 12px; background: var(--lc-yellow); color: #000; font-family: var(--font-display); font-size: 15px; letter-spacing: .08em; padding: 2px 9px 0; }
.login__body { padding: 28px; }
.login__body h1 { font-family: var(--font-display); font-size: 30px; line-height: .95; text-transform: uppercase; color: var(--lc-ink); margin: 0 0 6px; }
.login__body p { font-size: 13.5px; color: var(--text-muted); margin: 0 0 22px; }
.login__err { background: rgba(231,29,37,.08); border: 1px solid var(--lc-red); color: var(--lc-red-deep); font-size: 12.5px; padding: 10px 12px; border-radius: var(--radius-md); margin-bottom: 16px; }
.login__foot { font-size: 11.5px; color: var(--text-muted); margin-top: 18px; text-align: center; }

/* ---- Forms (Create / Manage) ---- */
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 18px; }
.form-grid .full { grid-column: 1 / -1; }
.field-label { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 6px; display: block; }
.form-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--border-hair); }

/* ---- AI provenance badge (set on AI-populated fields) ---- */
.prov { display: inline-flex; align-items: center; gap: 2px; font-size: 9px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; padding: 0 4px; border-radius: 3px; vertical-align: middle; line-height: 1.5; }
.prov--ai { background: #FCF6C8; color: #8a7400; }
.prov--human { background: #E7EAF0; color: #3C4658; }
.prov i, .prov svg { width: 9px; height: 9px; }

/* ---- Linked-record lists (participants / events / content) ---- */
.linklist { list-style: none; margin: 0; padding: 0; }
.linklist li { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--border-hair); }
.linklist li:last-child { border-bottom: none; }
.linklist .li-main { flex: 1; min-width: 0; }
.linklist .li-main b { display: block; font-size: 13px; color: var(--lc-ink); font-weight: 700; }
.linklist .li-main span { font-size: 11.5px; color: var(--text-muted); }

/* ---- AI configuration (admin) ---- */
.ai-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 18px; }
.ai-field { display: flex; flex-direction: column; gap: 6px; }
.ai-field > span { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.ai-hint { font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--text-muted); }
.ai-input { font-family: var(--font-text); font-size: 13px; color: var(--lc-ink); background: var(--lc-paper); border: 1px solid var(--border-hair); border-radius: var(--radius-md); padding: 9px 11px; width: 100%; }
.ai-input:focus { outline: none; border-color: var(--lc-navy); }
.ai-input:disabled { opacity: .55; }
.ai-prompt { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; line-height: 1.5; color: var(--lc-ink); background: var(--lc-paper); border: 1px solid var(--border-hair); border-radius: var(--radius-md); padding: 12px; width: 100%; resize: vertical; }
.ai-prompt:focus { outline: none; border-color: var(--lc-navy); }
.ai-actions { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.ai-msg { margin-top: 12px; font-size: 12.5px; padding: 9px 12px; border-radius: var(--radius-md); }
.ai-msg--ok { background: rgba(16,122,87,.10); color: #0f7a57; border: 1px solid rgba(16,122,87,.3); }
.ai-msg--err { background: rgba(231,29,37,.08); color: var(--lc-red-deep); border: 1px solid var(--lc-red); }
.ai-test { margin-top: 14px; border: 1px solid var(--border-hair); border-radius: var(--radius-md); padding: 12px; background: rgba(0,0,0,.015); }
.ai-test__head { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.ai-test__head i { width: 14px; height: 14px; }
.ai-test__json { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; line-height: 1.45; margin: 0; white-space: pre-wrap; color: var(--text-body); max-height: 260px; overflow: auto; }
.ai-empty { padding: 22px; color: var(--text-muted); font-size: 13px; }
.ai-runs { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.ai-runs th { text-align: left; font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--text-muted); padding: 10px 14px; border-bottom: 1px solid var(--border-hair); }
.ai-runs td { padding: 9px 14px; border-bottom: 1px solid var(--border-hair); color: var(--text-body); }
.ai-runs tr:last-child td { border-bottom: none; }

/* ---- Form section subheading (Matters create/detail groups) ---- */
.form-subhead { font-family: var(--font-display); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--lc-navy); margin: 0 0 12px; padding-bottom: 6px; border-bottom: 1px solid var(--border-hair); }

/* ---- Matter rebuild: shared bits ---- */
.ledger-textarea { width: 100%; min-height: 80px; padding: 10px 12px; font-family: var(--font-text); font-size: 13.5px; }
.ledger-ok { margin-bottom: 14px; padding: 9px 12px; border-radius: 8px; background: rgba(16,122,87,.1); color: #0f7a57; font-size: 12.5px; }
.chip { display: inline-flex; align-items: center; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 4px; background: var(--lc-slate-100); color: var(--lc-slate-700); }
/* Role badge: muted slate, not brand-red — the card already carries a group accent. */
.chip--role { background: var(--lc-slate-100); color: var(--lc-slate-700); }
.chip--inv { background: rgba(46,107,184,.10); color: #2e6bb8; }

.tab-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.tab-head h3 { font-family: var(--font-text); font-weight: 800; font-size: 15px; color: var(--lc-ink); margin: 0; }

/* ---- Participant record cards ---- */
.rec-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.rec-card { background: var(--lc-paper-2); border: 1px solid var(--border-hair); border-radius: 10px; padding: 13px 15px; }
.rec-top { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; }
.avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--lc-slate-100); color: var(--lc-slate-700); display: flex; align-items: center; justify-content: center; font-size: 11.5px; font-weight: 700; flex: none; }
.rec-name { font-size: 13.5px; font-weight: 700; color: var(--lc-ink); display: flex; align-items: center; gap: 6px; margin-bottom: 3px; }
.rec-contact { display: flex; flex-direction: column; gap: 4px; font-size: 11.5px; color: var(--text-muted); }
.rec-contact i, .rec-contact svg { width: 13px; height: 13px; vertical-align: -2px; margin-right: 5px; }

/* ---- Participant group headings ---- */
.part-grouphead { display: flex; align-items: center; gap: 8px; font-family: var(--font-display); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--lc-navy); margin: 0 0 10px; }
.part-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.part-count { font-family: var(--font-text); font-size: 11px; font-weight: 700; letter-spacing: 0; color: var(--lc-slate-700); background: var(--lc-slate-100); border-radius: 999px; padding: 1px 8px; }
.part-orglink { display: flex; align-items: center; gap: 7px; margin-top: 6px; padding: 10px 13px; border: 1px dashed var(--border-hair); border-radius: 10px; font-size: 12.5px; color: var(--text-muted); cursor: pointer; }
.part-orglink:hover { background: var(--lc-paper-2); color: var(--lc-ink); }
.part-orglink i, .part-orglink svg { width: 14px; height: 14px; }

/* ---- Agency cards (Agencies tab) ---- */
.ag-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.ag-card { background: var(--lc-paper-2); border: 1px solid var(--border-hair); border-radius: 10px; padding: 13px 15px; border-left: 3px solid #2f6fbf; }
.ag-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.ag-name { font-size: 14px; font-weight: 700; color: var(--lc-ink); display: flex; align-items: center; gap: 7px; margin-bottom: 5px; }
.ag-name i, .ag-name svg { width: 15px; height: 15px; color: #2f6fbf; flex: none; }
.ag-name > span { display: inline-flex; }
.ag-namelink { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: var(--lc-ink); cursor: pointer; text-align: left; }
.ag-namelink:hover { color: #2f6fbf; text-decoration: underline; }
.ag-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.ag-loc { font-size: 11.5px; color: var(--text-muted); display: inline-flex; align-items: center; }
.ag-loc i, .ag-loc svg { width: 12px; height: 12px; margin-right: 3px; }
.ag-contact { display: flex; flex-direction: column; gap: 4px; font-size: 11.5px; color: var(--text-muted); }
.ag-contact i, .ag-contact svg { width: 13px; height: 13px; vertical-align: -2px; margin-right: 5px; }
.ag-contact a { color: #2e6bb8; text-decoration: none; }
.ag-contact a:hover { text-decoration: underline; }
.ag-notes { margin-top: 8px; font-size: 11.5px; color: var(--text-muted); line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.ag-inv { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--border-hair); }
.rec-card--btn { cursor: pointer; transition: border-color .12s, box-shadow .12s; position: relative; }
.rec-card--btn:hover { box-shadow: 0 1px 0 var(--border-hair), 0 6px 18px rgba(20,28,46,.07); }
.rec-open { width: 15px; height: 15px; color: var(--lc-slate-300); margin-left: auto; flex: none; align-self: flex-start; }

/* ---- Locked overview sections (edit-on-demand) ---- */
.ov-lockhint { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--text-muted); background: var(--lc-paper-2); border: 1px solid var(--border-hair); border-radius: 8px; padding: 8px 12px; margin-bottom: 16px; }
.ov-lockhint i, .ov-lockhint svg { width: 13px; height: 13px; }
/* Sections are clearly delineated: a brand accent tab + larger heading + a
   heavy ink rule, with generous gaps so one section reads apart from the next. */
.ov-section { margin-bottom: 30px; }
.ov-section + .ov-section { padding-top: 4px; }
.ov-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 16px; padding-bottom: 9px; border-bottom: 2px solid var(--lc-ink); }
.ov-title { font-family: var(--font-display); font-size: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--lc-ink); display: inline-flex; align-items: center; gap: 9px; }
.ov-title::before { content: ""; width: 5px; height: 17px; border-radius: 1px; background: var(--lc-yellow); box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); flex: none; }
.ov-actions { display: inline-flex; align-items: center; gap: 14px; }
.ov-save { color: var(--status-up, #1f8a4c); }
.ov-value { font-family: var(--font-text); font-size: 13.5px; color: var(--text-body); padding: 7px 0 2px; min-height: 20px; }
.ov-prose { white-space: pre-wrap; line-height: 1.55; }
.ov-lede-value { font-size: 15px; line-height: 1.5; color: var(--lc-ink); font-weight: 500; }

/* One-line matter summary — follows the matter wherever it is listed. */
.page-lede { font-size: 15px; line-height: 1.45; color: var(--text-body); margin: 8px 0 0; max-width: 760px; }
.row-sub { display: block; margin-top: 3px; font-size: 12px; font-weight: 400; color: var(--text-muted); line-height: 1.35; white-space: normal; max-width: 540px; }
.li-lede { display: block; font-size: 12px; color: var(--text-body); margin: 1px 0; line-height: 1.35; }
.auto-textarea { width: 100%; overflow: hidden; resize: none; min-height: 0; padding: 10px 12px; font-family: var(--font-text); font-size: 13.5px; line-height: 1.5; }

/* ---- Tags (clickable + picker) ---- */
.chips-row { display: flex; flex-wrap: wrap; gap: 6px; }
.chip--tag { cursor: pointer; border: none; font-family: var(--font-text); }
.chip--tag:hover { background: rgba(46,107,184,.14); color: #2e6bb8; }
.tag-pick { display: flex; flex-wrap: wrap; gap: 7px; }
.tagopt { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 600; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--border-hair); background: var(--lc-paper-2); color: var(--lc-slate-700); cursor: pointer; }
.tagopt i, .tagopt svg { width: 12px; height: 12px; }
.tagopt--on { background: var(--lc-navy); color: #fff; border-color: var(--lc-navy); }
.tagfilter { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text-body); background: rgba(46,107,184,.08); border: 1px solid var(--border-hair); border-radius: 999px; padding: 5px 12px; margin-bottom: 14px; }
.tagfilter i, .tagfilter svg { width: 13px; height: 13px; }
/* Matters tab: a text search inside a lane hides matches in other lanes; say so. */
.lanehint { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--text-body); background: rgba(46,107,184,.08); border: 1px solid var(--border-hair); border-radius: 8px; padding: 8px 12px; margin-bottom: 14px; }
.lanehint svg { width: 14px; height: 14px; flex: none; color: var(--lc-slate-500); }
.lanehint .link-btn { margin-left: auto; }

/* ---- Modal (participant detail) ---- */
.modal-backdrop { position: fixed; inset: 0; background: rgba(20,28,46,.42); display: flex; align-items: flex-start; justify-content: center; padding: 6vh 16px; z-index: 1000; overflow-y: auto; }
.modal { width: 100%; max-width: 560px; background: var(--lc-paper, #fff); border-radius: 14px; box-shadow: 0 24px 64px rgba(10,16,30,.34); padding: 20px 22px; }
.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.modal-title { font-family: var(--font-display); font-size: 22px; font-weight: 800; color: var(--lc-ink); margin: 2px 0 0; }
.pd-body { display: flex; flex-direction: column; gap: 12px; }
.pd-row { display: flex; gap: 10px; align-items: flex-start; }
.pd-row i, .pd-row svg { width: 15px; height: 15px; color: var(--lc-slate-500); margin-top: 2px; flex: none; }
.pd-label { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); }
.pd-val { font-size: 13.5px; color: var(--text-body); white-space: pre-wrap; line-height: 1.45; }

/* ---- Tag taxonomy table (Admin) ---- */
.tag-table td { vertical-align: middle; }
.tag-key { font-family: var(--font-mono, monospace); font-size: 11.5px; color: var(--text-muted); }
.tag-in { padding: 5px 8px; font-size: 12.5px; width: 100%; min-width: 90px; }
.tag-in--num { width: 70px; min-width: 0; }
.tagrow--off { opacity: .5; }

/* ---- Milestone timeline (prominent "case timeline") ---- */
.mtl-card { background: var(--surface-card); border: 1px solid var(--border-hair); border-radius: 10px;
  padding: 15px 18px 16px; margin-bottom: 16px; }
.mtl-card-head { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-display);
  letter-spacing: .04em; font-size: 15px; color: var(--text-strong); margin-bottom: 12px; text-transform: uppercase; }
.mtl-card-head i, .mtl-card-head svg { width: 15px; height: 15px; color: var(--lc-red); }
.mtl { display: flex; gap: 0; overflow-x: auto; padding-bottom: 2px; }
.mtl-ev { flex: 1 0 84px; position: relative; padding: 0 6px; text-align: center; }
.mtl-ev::before { content: ""; position: absolute; top: 5px; left: 0; right: 0; height: 2px; background: var(--lc-slate-200); }
.mtl-ev:first-child::before { left: 50%; }
.mtl-ev:last-child::before { right: 50%; }
.mtl-dot { width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid var(--lc-slate-300);
  position: relative; z-index: 1; margin: 0 auto 8px; }
.mtl-ev--done .mtl-dot { background: var(--lc-ink); border-color: var(--lc-ink); }
.mtl-ev--now .mtl-dot { background: var(--lc-red); border-color: var(--lc-red); box-shadow: 0 0 0 4px rgba(231,29,37,.15); }
.mtl-dt { font-size: 10.5px; font-weight: 700; color: var(--text-muted); }
.mtl-ev--now .mtl-dt { color: var(--lc-red); }
.mtl-nm { font-size: 11px; color: var(--text-body); margin-top: 1px; }
.mtl-empty { font-size: 12.5px; color: var(--text-muted); margin-bottom: 12px; }

/* ---- Prominent matter status badges ---- */
.mstatus-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 8px 0 2px; }
.mstatus { display: inline-flex; align-items: center; white-space: nowrap; border-radius: 999px;
  font-weight: 700; font-size: 12px; letter-spacing: .02em; padding: 3px 12px; border: 1px solid transparent; }
.mstatus--hot { background: #fdeaec; color: #b0243a; border-color: #f3c9d1; }
.mstatus--active { background: #fef7e0; color: #8a6d00; border-color: #f5e2a3; }
.mstatus--neutral { background: #eef1f5; color: #5b6675; border-color: #d9dee6; }
.mstatus--done { background: #f2f0eb; color: #6b6b6b; border-color: #e0ddd4; }
.mstatus--muted { background: #eef1f5; color: #8a94a3; border-color: #e2e7ee; }
.cc-owner { gap: 5px; }
.cc-owner svg, .cc-owner-edit svg { width: 13px; height: 13px; }
.cc-owner-edit { display: inline-flex; align-items: center; gap: 5px; border: 1px solid #d9dee6; background: #eef1f5;
  color: #5b6675; border-radius: 999px; padding: 1px 4px 1px 10px; font-size: 12px; font-weight: 700; }
.cc-owner-select { border: none; background: transparent; font: inherit; color: var(--text); cursor: pointer; padding: 2px 2px; max-width: 220px; }
.cc-owner-err { color: var(--lc-red-blood); font-weight: 600; padding-right: 6px; }
.show-pick-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.show-pick-row .lc-select, .show-pick-row select { min-width: 170px; }
.show-pick-chip { display: inline-flex; align-items: center; gap: 4px; }
.show-pick-chip button { border: none; background: none; cursor: pointer; font-size: 14px; line-height: 1; padding: 0 2px; color: var(--text-muted); }
.show-pick-chip button:hover { color: var(--lc-red-blood); }

/* ---- Tags index (browse) ---- */
.tagsidx-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.tagsidx-tag { display: inline-flex; align-items: center; gap: 9px; font-family: var(--font-text);
  font-size: 13px; font-weight: 600; color: var(--text-strong); background: var(--surface-card);
  border: 1px solid var(--border-hair); border-radius: 8px; padding: 7px 10px 7px 11px; cursor: pointer;
  transition: border-color .12s ease, box-shadow .12s ease; }
.tagsidx-tag:hover:not(:disabled) { border-color: var(--lc-ink); box-shadow: 0 2px 8px rgba(14,18,24,.08); }
.tagsidx-lbl { display: inline-flex; align-items: center; gap: 6px; }
.tagsidx-lbl i, .tagsidx-lbl svg { width: 13px; height: 13px; color: var(--lc-slate-500); }
.tagsidx-ct { min-width: 20px; text-align: center; font-size: 11.5px; font-weight: 800; color: var(--text-muted);
  background: var(--lc-paper); border-radius: 999px; padding: 1px 7px; }
/* `.tagsidx-tag--empty` removed 2026-09-11: the taxonomy is filtered to tags in
   use before it is rendered, so a zero-count chip no longer exists to grey out.
   `.tagsidx-bar` / `-meta` / `-group` / `-cat` went with the standalone Tags page
   they headed; the quick-chip row on Search uses the grid and the chip only. */
.tagsidx-tag--on { border-color: var(--lc-ink); background: rgba(252,238,33,.22); }

/* ---- Tag filter (Tags.jsx) — the collapsed multi-select ------------------- */
/* One control instead of the four renderings of the taxonomy this page used to
   carry. Collapsed by default; selected tags live outside it as chips, because
   what is filtering your results must be visible without opening anything. */
.tagf { display: flex; flex-direction: column; gap: 10px; }
.tagf__row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tagf__pop { position: relative; }
.tagf__btn { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-text);
  font-size: 13px; font-weight: 700; color: var(--text-body); background: var(--lc-paper);
  border: 1px solid var(--border-hair); border-radius: 8px; padding: 9px 13px; cursor: pointer; }
.tagf__btn:hover { border-color: var(--lc-ink); }
.tagf__btn--on { border-color: var(--lc-ink); background: rgba(252,238,33,.22); }
.tagf__btn i, .tagf__btn svg { width: 14px; height: 14px; }
.tagf__caret { opacity: .5; }

.tagf__panel { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; width: 330px;
  background: var(--lc-cream, #F2F0EB); border: 1px solid var(--lc-ink); border-radius: 10px;
  box-shadow: 0 12px 32px rgba(14,18,24,.18); overflow: hidden; }
.tagf__find { display: flex; align-items: center; gap: 8px; padding: 10px 12px;
  border-bottom: 1px solid var(--border-hair); }
.tagf__find i, .tagf__find svg { width: 14px; height: 14px; color: var(--text-muted); flex: none; }
.tagf__find input { flex: 1; border: 0; background: none; font-family: var(--font-text);
  font-size: 13px; color: var(--text-body); outline: none; min-width: 0; }
.tagf__x { border: 0; background: none; cursor: pointer; padding: 0; color: var(--text-muted); display: flex; }
/* Capped and scrollable: 49 tags in six groups is a browse, not a page. */
.tagf__list { max-height: 320px; overflow-y: auto; padding: 6px 0; }
.tagf__note { padding: 14px 14px; font-size: 12.5px; color: var(--text-muted); }
.tagf__grp { padding: 4px 0; }
.tagf__cat { font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-muted); padding: 6px 14px 4px; }
.tagf__opt { display: flex; align-items: center; gap: 9px; width: 100%; font-family: var(--font-text);
  font-size: 13px; color: var(--text-body); background: none; border: 0; cursor: pointer;
  padding: 6px 14px; text-align: left; }
.tagf__opt:hover { background: rgba(252,238,33,.20); }
.tagf__opt--on { font-weight: 700; }
.tagf__tick { width: 15px; height: 15px; flex: none; border: 1px solid var(--border-hair);
  border-radius: 4px; display: flex; align-items: center; justify-content: center; background: #fff; }
.tagf__opt--on .tagf__tick { background: var(--lc-ink); border-color: var(--lc-ink); }
.tagf__tick svg { width: 11px; height: 11px; color: var(--tape-yellow, #FCEE21); }
.tagf__lbl { flex: 1; min-width: 0; }
.tagf__ct { font-size: 11.5px; font-weight: 700; color: var(--text-muted); font-variant-numeric: tabular-nums; }

.tagf__mode { display: inline-flex; border: 1px solid var(--border-hair); border-radius: 8px; overflow: hidden; }
.tagf__mode button { font-family: var(--font-text); font-size: 12px; font-weight: 700;
  color: var(--text-muted); background: var(--lc-paper); border: 0; padding: 9px 12px; cursor: pointer; }
.tagf__mode button + button { border-left: 1px solid var(--border-hair); }
.tagf__mode button.on { background: var(--lc-ink); color: var(--tape-yellow, #FCEE21); }
.tagf__clear { font-size: 12.5px; }

.tagf__chips { display: flex; flex-wrap: wrap; gap: 7px; }
.tagf__chip { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-text);
  font-size: 12.5px; font-weight: 700; color: var(--lc-ink); background: rgba(252,238,33,.32);
  border: 1px solid var(--border-hair); border-radius: 999px; padding: 5px 11px; cursor: pointer; }
.tagf__chip:hover { border-color: var(--lc-red, #E71D25); }
.tagf__chip svg { width: 12px; height: 12px; opacity: .6; }

/* ---- Search page layout --------------------------------------------------- */
.srch-controls { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.srch-box { flex: 1; min-width: 260px; max-width: 460px; }
.srch-count { font-size: 13px; color: var(--text-muted); margin-bottom: 14px; }
.srch-count b { color: var(--lc-ink); font-variant-numeric: tabular-nums; }
.srch-empty { max-width: 720px; }
.srch-hint { display: flex; align-items: center; gap: 7px; font-size: 12.5px;
  color: var(--text-muted); margin-top: 16px; }
.srch-hint i, .srch-hint svg { width: 14px; height: 14px; flex: none; }

/* ---- Coverage board — per-day group (week span) ---- */
.cov-daygrp { margin-bottom: 18px; }
.cov-dayhd { display: flex; align-items: baseline; gap: 8px; font-family: var(--font-display);
  letter-spacing: .04em; font-size: 15px; text-transform: uppercase; color: var(--text-strong); margin-bottom: 8px; }
.cov-dayct { font-family: var(--font-text); font-size: 11.5px; font-weight: 700; letter-spacing: 0;
  text-transform: none; color: var(--text-muted); }

/* ---- Segmented toggle (FOIA vs Asset) ---- */
.seg { display: inline-flex; border: 1px solid var(--border-hair); border-radius: 8px; overflow: hidden; margin-bottom: 16px; }
.seg button { font-family: var(--font-text); font-size: 12.5px; font-weight: 700; padding: 7px 14px; border: none; background: var(--lc-paper-2); color: var(--text-muted); cursor: pointer; }
.seg button + button { border-left: 1px solid var(--border-hair); }
.seg .seg--on { background: var(--lc-navy); color: #fff; }

/* ---- Request status pills ---- */
.pill { font-size: 10.5px; font-weight: 700; padding: 3px 9px; border-radius: 999px; letter-spacing: .02em; white-space: nowrap; flex: none; }
.pill--fulfilled, .pill--approved { background: rgba(31,138,76,.12); color: #1f8a4c; }
.pill--filed, .pill--requested, .pill--pending, .pill--partial_response, .pill--appealed { background: rgba(46,107,184,.12); color: #2e6bb8; }
.pill--denied, .pill--cancelled { background: var(--lc-slate-100); color: var(--lc-slate-700); }
/* Asset-request lifecycle tones (RequestKit.requestTone) */
.pill--rq-active { background: rgba(46,107,184,.12); color: #2e6bb8; }
.pill--rq-warn { background: rgba(138,116,0,.14); color: #8a7400; }
.pill--rq-done { background: rgba(31,138,76,.12); color: #1f8a4c; }
.pill--rq-dead { background: var(--lc-slate-100); color: var(--lc-slate-700); }
.overdue { color: var(--lc-red); font-weight: 700; }

/* ---- Asset Requests: content-kind chips ---- */
.ck-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.ck-chip { font-family: var(--font-text); font-size: 12px; font-weight: 600; padding: 5px 11px; border-radius: 999px;
  border: 1px solid var(--border-hair); background: var(--lc-paper-2); color: var(--text-muted); cursor: pointer; }
.ck-chip--on { background: var(--lc-navy); color: #fff; border-color: var(--lc-navy); }
.chip--basis { background: rgba(138,116,0,.14); color: #8a7400; }

/* ---- Asset Requests: request list ---- */
.rq-list { list-style: none; margin: 0; padding: 0; }
.rq-item { border-bottom: 1px solid var(--border-hair); }
.rq-item:last-child { border-bottom: 0; }
.rq-row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; cursor: pointer; }
.rq-row:hover { background: var(--lc-paper-2); }
.rq-main { flex: 1; min-width: 0; }
.rq-title { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.rq-id { font-family: var(--font-mono, ui-monospace, monospace); font-size: 12px; font-weight: 700; color: var(--lc-ink); }
.rq-sub { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; font-size: 12px; color: var(--text-muted); }
.rq-sub span { display: inline-flex; align-items: center; gap: 4px; }
.rq-sub svg { width: 13px; height: 13px; }
.rq-more { color: #8a7400; font-weight: 700; }
.rq-caret { width: 16px; height: 16px; color: var(--text-muted); flex: none; }
.rq-detail { padding: 4px 14px 16px; background: var(--lc-paper-2); }
.rq-details-text { font-size: 13px; color: var(--lc-ink); margin-bottom: 12px; white-space: pre-wrap; }
.rq-detail-actions { margin-top: 12px; }

/* ---- Asset Requests: agency playbook panel ---- */
.rq-play { border: 1px solid var(--border-hair); border-radius: 8px; background: var(--lc-paper); padding: 12px 14px; }
.rq-play-head { display: flex; align-items: center; gap: 6px; font-weight: 800; font-size: 12.5px; color: var(--lc-ink); }
.rq-play-head svg { width: 15px; height: 15px; }
.rq-play-loc { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--text-muted); margin-top: 4px; }
.rq-play-loc svg { width: 13px; height: 13px; }
.rq-play-empty { font-size: 12.5px; color: var(--text-muted); margin-top: 6px; }
.rq-play-grid { margin: 10px 0 0; display: grid; gap: 7px; }
.rq-play-row { display: grid; grid-template-columns: 140px 1fr; gap: 10px; font-size: 13px; }
.rq-play-row dt { color: var(--text-muted); font-weight: 600; }
.rq-play-row dd { margin: 0; color: var(--lc-ink); word-break: break-word; }
.rq-play-notes { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--border-hair); font-size: 12.5px; color: var(--text-muted); white-space: pre-wrap; }
.rq-resid { display: flex; gap: 9px; align-items: flex-start; background: rgba(197,48,48,.08); border: 1px solid rgba(197,48,48,.25);
  border-radius: 8px; padding: 10px 12px; font-size: 12.5px; color: var(--lc-ink); margin-bottom: 12px; }
.rq-resid svg { width: 16px; height: 16px; color: var(--lc-red); flex: none; margin-top: 1px; }
.rq-resid--form { margin: 14px 0 0; }
.rq-resid-note { margin-top: 4px; color: var(--text-muted); }

/* ---- Ops queue (cross-matter Asset Requests worklist) ---- */
.page-sub { font-size: 13px; color: var(--text-muted); margin: 8px 0 0; max-width: 640px; }
.opsq-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
/* Open + Overdue moved to the bucket rail, so the tile row is a pair now. Half
   width rather than two stretched tiles: a 50%-wide number reads as a headline,
   a 100%-wide one reads as a banner. */
.opsq-kpis--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 560px; }
.opsq-kpi { border: 1px solid var(--border-hair); border-radius: 10px; background: var(--lc-paper); padding: 14px 16px; }
.opsq-kpi-val { font-family: var(--font-display); font-size: 30px; line-height: 1; color: var(--lc-ink); }
.opsq-kpi-lbl { font-size: 11.5px; font-weight: 600; color: var(--text-muted); margin-top: 6px; text-transform: uppercase; letter-spacing: .03em; }
.opsq-kpi--active .opsq-kpi-val { color: #2e6bb8; }
.opsq-kpi--warn .opsq-kpi-val { color: var(--lc-red); }
.opsq-kpi--done .opsq-kpi-val { color: #1f8a4c; }
.opsq-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 16px; }
.opsq-filters .lc-field { min-width: 150px; }
/* `.opsq-toggle` (the "Overdue only" pill) was removed 2026-09-11: the due-date
   bucket rail folded in from the Worklist asks that question and four others. */
/* The rail sits above the filter row on the Asset Requests desk. */
.opsq .buckets { margin-bottom: 16px; }
.opsq-table-wrap { overflow-x: auto; }
.opsq-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.opsq-table th { text-align: left; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
  color: var(--text-muted); padding: 10px 12px; border-bottom: 1px solid var(--border-hair); white-space: nowrap; }
.opsq-table td { padding: 10px 12px; border-bottom: 1px solid var(--border-hair); vertical-align: middle; }
.opsq-table tr:last-child td { border-bottom: 0; }
.opsq-row--saving { opacity: .55; }
.opsq-id { font-family: var(--font-mono, ui-monospace, monospace); font-size: 12px; font-weight: 700; color: var(--lc-ink); }
.opsq-matter { font-weight: 600; text-align: left; }
.opsq-kinds { display: flex; flex-wrap: wrap; gap: 4px; max-width: 220px; }
.opsq-inline { font-family: var(--font-text); font-size: 12px; padding: 5px 8px; border-radius: 6px; border: 1px solid var(--border-hair); background: var(--lc-paper); color: var(--lc-ink); max-width: 160px; }
.opsq-status--rq-active { color: #2e6bb8; }
.opsq-status--rq-warn { color: #8a7400; }
.opsq-status--rq-done { color: #1f8a4c; }
.opsq-status--rq-dead { color: var(--lc-slate-700); }
@media (max-width: 900px) { .opsq-kpis { grid-template-columns: repeat(2, 1fr); } }

/* ---- Coverage status (Newsroom + Matters list) — matters.coverage_status, 0077.
   Ladder: identified · monitoring · assigned · adjudicated. The committee_approved /
   in_progress / completed rules below are legacy names kept so a stale row still
   renders in the right colour. */
.track { font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 999px; white-space: nowrap; background: var(--lc-slate-100); color: var(--lc-slate-700); }
.track--identified { background: var(--lc-slate-100); color: var(--lc-slate-700); }
.track--monitoring { background: rgba(46,107,184,.12); color: #2e6bb8; }
.track--assigned, .track--in_progress { background: rgba(46,107,184,.16); color: #2e6bb8; }
.track--adjudicated { background: rgba(31,138,76,.14); color: #1f8a4c; }
.track--committee_approved { background: rgba(138,116,0,.14); color: #8a7400; } /* legacy */
.track--completed { background: rgba(31,138,76,.14); color: #1f8a4c; }          /* legacy */

/* ---- Rendered AI briefing (markdown → brand-styled, not raw monospace) ---- */
.briefing { font-family: var(--font-text); font-size: 13px; line-height: 1.62; color: var(--text-body); background: var(--lc-paper-2); border: 1px solid var(--border-hair); border-radius: 8px; padding: 14px 17px; max-height: 320px; overflow-y: auto; }
.briefing-edit { min-height: 280px; resize: vertical; font-family: var(--font-text); }
.link-btn { background: none; border: none; color: var(--text-link); font-size: 11px; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; text-transform: none; letter-spacing: 0; padding: 0; flex: none; }
.link-btn:hover { color: var(--lc-red-blood); }
.link-btn:disabled { color: var(--lc-slate-300); cursor: default; }
.link-btn i, .link-btn svg { width: 12px; height: 12px; }

/* ---- Delete (two-click confirm) ---- */
.del-btn { background: none; border: none; color: var(--lc-slate-500); font-size: 11px; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px; border-radius: 6px; flex: none; transition: background var(--dur-fast), color var(--dur-fast); }
.del-btn:hover { color: var(--lc-red); background: rgba(196,30,58,.08); }
.del-btn:disabled { color: var(--lc-slate-300); cursor: default; }
.del-btn i, .del-btn svg { width: 13px; height: 13px; }
.del-btn--armed { color: #fff; background: var(--lc-red, #c41e3a); }
.del-btn--armed:hover { color: #fff; background: var(--lc-red-blood, #a01830); }
.form-actions--split { justify-content: space-between; align-items: center; }
.form-actions--split .fa-right { display: inline-flex; gap: 10px; }
.ag-actions { display: inline-flex; align-items: center; gap: 4px; flex: none; }
.ag-foia-badge { display: inline-block; min-width: 20px; text-align: center; font-weight: 700; font-size: 11.5px; color: #2e6bb8; background: rgba(46,107,184,.12); border-radius: 999px; padding: 2px 8px; }

/* ---- Trial calendar ---- */
.cal-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.cal-nav { display: flex; align-items: center; gap: 8px; }
.cal-navbtn { width: 32px; height: 32px; border: 1px solid var(--border-hair); background: var(--lc-paper); border-radius: 8px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; color: var(--lc-ink); }
.cal-navbtn:hover { background: var(--lc-paper-2); }
.cal-navbtn i, .cal-navbtn svg { width: 16px; height: 16px; }
.cal-today { border: 1px solid var(--border-hair); background: var(--lc-paper); border-radius: 8px; padding: 0 12px; height: 32px; font-size: 12.5px; font-weight: 700; cursor: pointer; color: var(--lc-ink); }
.cal-today:hover { background: var(--lc-paper-2); }
.cal-month { font-family: var(--font-display); font-size: 24px; letter-spacing: .02em; color: var(--lc-ink); margin: 0 0 0 8px; text-transform: uppercase; }
.cal-keyonly { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 600; color: var(--text-body); cursor: pointer; }
.cal-bar-right { display: flex; align-items: center; gap: 16px; }
.cal-viewtoggle { display: inline-flex; border: 1px solid var(--border-hair); border-radius: 8px; overflow: hidden; }
.cal-viewbtn { height: 32px; padding: 0 14px; font-size: 12.5px; font-weight: 700; border: none; background: var(--lc-paper); color: var(--text-muted); cursor: pointer; }
.cal-viewbtn + .cal-viewbtn { border-left: 1px solid var(--border-hair); }
.cal-viewbtn:not(.is-on):hover { background: var(--lc-paper-2); }
.cal-viewbtn.is-on { background: var(--lc-ink); color: #fff; }
.cal-legend { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 12px; font-size: 11.5px; color: var(--text-muted); }
.cal-legend span { display: inline-flex; align-items: center; gap: 6px; }
.cal-dot { width: 11px; height: 11px; border-radius: 3px; display: inline-block; flex: none; }
.cal-dot--trial { background: #F2C200; }
.cal-dot--hearing { background: #3F76D9; }
.cal-dot--sentencing { background: #2FA45A; }
.cal-dot--pretrial { background: #D8423E; }
.cal-dot--arraignment { background: #8A5CD0; }
.cal-dot--motion { background: #E0529B; }
.cal-dot--plea { background: #C77A1E; }
.cal-dot--other { background: var(--lc-slate-400, #9aa3b2); }

/* Month grid: each week is a background cell-layer + an absolute overlay grid
   where events are laid as bars spanning the columns they cover. A multi-day
   trial becomes ONE continuous bar crossing its days (it re-starts each week). */
.cal-cal { border: 1px solid var(--border-hair); border-radius: 10px; overflow: hidden; background: var(--lc-paper); }
.cal-dow-row { display: grid; grid-template-columns: repeat(7, 1fr); background: var(--lc-paper-2); border-bottom: 1px solid var(--border-hair); }
.cal-dow { padding: 8px 10px; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.cal-week { position: relative; }
.cal-week-bg { display: grid; grid-template-columns: repeat(7, 1fr); }
.cal-bgcell { min-height: calc(30px + var(--lanes, 1) * 21px); border-top: 1px solid var(--border-hair); border-right: 1px solid var(--border-hair); padding: 4px 7px; background: var(--lc-paper); cursor: pointer; position: relative; transition: background var(--dur-fast); }
.cal-week:first-child .cal-bgcell { border-top: none; }
.cal-bgcell:nth-child(7n) { border-right: none; }
.cal-bgcell:hover { background: var(--lc-paper-2); }
.cal-bgcell--out { background: #fafafa; }
.cal-bgcell--out .cal-daynum { color: var(--lc-slate-300); }
.cal-bgcell--today { box-shadow: inset 0 0 0 2px var(--lc-yellow); }
.cal-bgcell--sel { background: rgba(46,107,184,.07); }
.cal-daynum { font-size: 12px; font-weight: 700; color: var(--lc-ink); }
.cal-hidden { position: absolute; bottom: 3px; left: 7px; font-size: 10px; font-weight: 700; color: var(--text-link); pointer-events: none; }
.cal-wkndmark { position: absolute; top: 4px; right: 6px; z-index: 2; font-size: 10px; font-weight: 700; color: var(--text-link); background: none; border: 0; padding: 0; cursor: pointer; }
.cal-wkndmark:hover { text-decoration: underline; }
.cal-week-fg { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(7, 1fr); grid-auto-rows: 19px; row-gap: 2px; padding: 26px 0 5px; pointer-events: none; }
.cal-ev { pointer-events: auto; align-self: start; display: flex; align-items: center; height: 19px; line-height: 19px; margin: 0 3px; border: none; cursor: pointer; font-family: var(--font-text); font-size: 11px; font-weight: 600; padding: 0 8px; border-radius: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left; min-width: 0; }
.cal-ev-txt { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.cal-ev:not(.cal-ev--contL) { box-shadow: inset 3px 0 0 rgba(0,0,0,.16); }
.cal-ev:hover { filter: brightness(.95); }
.cal-ev--contL { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: 0; }
.cal-ev--contR { border-top-right-radius: 0; border-bottom-right-radius: 0; margin-right: 0; }
.cal-ev--trial { background: #F6DA5E; color: #4a3a00; }
.cal-ev--hearing { background: #CBDDF8; color: #1d4f93; }
.cal-ev--sentencing { background: #C2E6CD; color: #1c6b3e; }
.cal-ev--pretrial { background: #F6C7C5; color: #9c2723; }
.cal-ev--arraignment { background: #DECFF1; color: #5a3a91; }
.cal-ev--motion { background: #F7CCE0; color: #9c3168; }
.cal-ev--plea { background: #F5DCB8; color: #8a5312; }
.cal-ev--other { background: #E4E6EB; color: #44506a; }
/* Covering vs Tracking (B4). Per type: --cat = solid fill, --cat-on = text on it
   (white, 4.5:1 or better; ink on the trial yellow), --cat-ink = text on paper. */
.cal-ev--trial { --cat: #F2C200; --cat-on: #151A24; --cat-ink: #5c4800; }
.cal-ev--hearing { --cat: #2E62C0; --cat-on: #fff; --cat-ink: #1d4f93; }
.cal-ev--sentencing { --cat: #1E7A44; --cat-on: #fff; --cat-ink: #1c6b3e; }
.cal-ev--pretrial { --cat: #C0302C; --cat-on: #fff; --cat-ink: #9c2723; }
.cal-ev--arraignment { --cat: #6E45B8; --cat-on: #fff; --cat-ink: #5a3a91; }
.cal-ev--motion { --cat: #B8306F; --cat-on: #fff; --cat-ink: #9c3168; }
.cal-ev--plea { --cat: #9A5A12; --cat-on: #fff; --cat-ink: #8a5312; }
.cal-ev--other { --cat: #5b6675; --cat-on: #fff; --cat-ink: #44506a; }
.is-cov.cal-ev, .is-cov.cal-achip, .is-cov.cal-dcard { background: var(--cat); color: var(--cat-on); font-weight: 700; }
.is-trk.cal-ev, .is-trk.cal-achip, .is-trk.cal-dcard { background: #fff; color: var(--cat-ink); font-weight: 500;
  box-shadow: inset 0 0 0 1px var(--cat), inset 3px 0 0 var(--cat); }
.cal-ev.is-trk.cal-ev--contL { box-shadow: inset 0 0 0 1px var(--cat); }
.cal-legend-cov { padding-left: 16px; border-left: 1px solid var(--border-hair); }
.cal-swatch { display: inline-block; width: 22px; height: 11px; border-radius: 3px; }
.cal-swatch.is-cov { background: #2E62C0; }
.cal-swatch.is-trk { background: #fff; box-shadow: inset 0 0 0 1px #2E62C0; margin-left: 8px; }

/* Week view: one tall week row; each day gets room to show every event + its time. */
.cal-cal--week { border-radius: 10px; }
.cal-cal--week .cal-bgcell { min-height: calc(128px + var(--lanes, 1) * 21px); padding: 6px 8px; }
.cal-cal--week .cal-week-fg { padding-top: 34px; }
.cal-cal--week .cal-daynum { font-size: 13px; }
.cal-cal--week .cal-dayname { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); margin-right: 2px; }

.cal-day { margin-top: 16px; border: 1px solid var(--border-hair); border-radius: 10px; background: var(--lc-paper); padding: 14px 16px; }
.cal-day-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
/* Move a court date from the day list (0158). */
.cal-move { display: block !important; cursor: default; background: var(--lc-paper-2, #f6f4f0); border-radius: 8px; padding: 12px 14px !important; margin: 2px 0 8px; }
.cal-move__fields { display: flex; flex-wrap: wrap; gap: 10px 14px; }
.cal-move__fields label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--text-muted); }
.cal-move__fields .lc-input { min-width: 140px; }
.cal-move__reason { flex: 1 1 220px; }
.cal-move__actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 10px; flex-wrap: wrap; }
.cal-move__note { flex: 1 1 240px; font-size: 12px; color: var(--text-muted); }
.cal-move .login__err { margin-top: 8px; }
.cal-day-head b { font-family: var(--font-display); font-size: 17px; letter-spacing: .02em; color: var(--lc-ink); text-transform: uppercase; }
.cal-mid { font-weight: 600; font-size: 11px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.cal-flag { display: inline-flex; align-items: center; color: var(--lc-slate-500); flex: none; }
.cal-flag i, .cal-flag svg { width: 15px; height: 15px; }

.cal-await-note { display: flex; gap: 10px; align-items: flex-start; background: var(--lc-paper-2); border: 1px solid var(--border-hair); border-left: 3px solid var(--lc-yellow); border-radius: 8px; padding: 12px 14px; margin-bottom: 16px; font-size: 12.5px; color: var(--text-body); line-height: 1.5; }
.cal-await-note > i, .cal-await-note > svg { width: 17px; height: 17px; color: var(--lc-yellow-deep, #8a7400); flex: none; margin-top: 1px; }
.cal-auto { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; font-size: 11.5px; font-weight: 600; color: var(--lc-slate-500); }
.cal-auto i, .cal-auto svg { width: 13px; height: 13px; }
.unsaved { display: inline-flex; align-items: center; gap: 3px; color: var(--lc-red-deep); font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.unsaved i, .unsaved svg { width: 11px; height: 11px; }
.briefing p { margin: 0 0 9px; }
.briefing p:last-child { margin-bottom: 0; }
.briefing ul { margin: 0 0 10px; padding-left: 18px; }
.briefing li { margin: 3px 0; }
.briefing strong { font-weight: 700; color: var(--lc-ink); }
.brief-h3 { font-family: var(--font-display); font-size: 18px; letter-spacing: .01em; text-transform: uppercase; color: var(--lc-ink); margin: 2px 0 10px; }
.brief-h4 { font-size: 11.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--lc-navy); margin: 14px 0 6px; }
.briefing-empty { font-size: 12.5px; color: var(--text-muted); background: var(--lc-paper-2); border: 1px dashed var(--lc-slate-300); border-radius: 8px; padding: 14px 16px; }

/* ---- Disambiguation banner (AI flagged a possible mismatch) ---- */
.disambig { display: flex; gap: 11px; align-items: flex-start; background: #FFF8E1; border: 1px solid var(--lc-yellow-deep); border-radius: 8px; padding: 12px 14px; margin-bottom: 16px; }
.disambig__ic { width: 18px; height: 18px; color: #8a6d00; flex: none; margin-top: 1px; }
.disambig__body { flex: 1; min-width: 0; }
.disambig__body b { font-size: 12.5px; color: var(--lc-ink); display: block; }
.disambig__msg { font-size: 12.5px; color: var(--text-body); margin-top: 2px; line-height: 1.5; }
.disambig__actions { display: flex; gap: 18px; margin-top: 9px; }
.disambig__fix { display: flex; gap: 8px; align-items: center; margin-top: 10px; flex-wrap: wrap; }
.disambig__fix .lc-input { max-width: 340px; flex: 1; min-width: 200px; }

/* ---- Access (admin allow-list) ---- */
.access-add { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.access-add .lc-input { flex: 1; min-width: 220px; max-width: 360px; }
.access-add__admin { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--text-body); cursor: pointer; }
.access-level { font: inherit; font-size: 12px; font-weight: 600; color: var(--text-body); background: var(--surface-card, #fff); border: 1px solid var(--border-hair); border-radius: var(--radius-md); padding: 5px 8px; cursor: pointer; }
.access-level:disabled { opacity: .4; cursor: not-allowed; }
.access-table { width: 100%; border-collapse: collapse; margin-top: 18px; }
.access-table thead th { text-align: left; font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--text-muted); padding: 10px 14px; border-bottom: 1px solid var(--border-hair); }
.access-table tbody td { padding: 11px 14px; border-bottom: 1px solid var(--border-hair); color: var(--text-body); font-size: 13px; vertical-align: middle; }
.access-table tbody tr:last-child td { border-bottom: none; }
.access-you { color: var(--lc-slate-500); font-weight: 600; }
.access-member { color: var(--text-muted); font-size: 12px; }
.access-when { color: var(--text-muted); font-size: 12px; white-space: nowrap; }
.access-actions { text-align: right; white-space: nowrap; }
.access-btn { display: inline-flex; align-items: center; gap: 5px; background: none; border: 1px solid var(--border-hair); border-radius: var(--radius-md); color: var(--text-body); font-size: 12px; font-weight: 600; padding: 6px 10px; margin-left: 8px; cursor: pointer; transition: background var(--dur-fast), border-color var(--dur-fast); }
.access-btn:hover:not(:disabled) { background: var(--lc-paper-2); }
.access-btn:disabled { opacity: .4; cursor: not-allowed; }
.access-btn i, .access-btn svg { width: 13px; height: 13px; }
.access-btn--danger { color: var(--lc-red-deep); border-color: rgba(178,34,34,.35); }
.access-btn--danger:hover:not(:disabled) { background: rgba(178,34,34,.07); }

/* ── DEMO-ONLY feedback instrument (removed at go-live) ─────────────────────── */
/* Per-section comment dot — sits inline next to a section/card header. */
.cmt { position: relative; display: inline-flex; vertical-align: middle; margin-left: 8px; }
.cmt-dot { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px;
  padding: 0; border: 1px solid var(--border-hair); border-radius: 999px; background: none;
  color: var(--lc-slate-500); cursor: pointer; transition: background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast); }
.cmt-dot:hover { background: var(--lc-yellow); color: var(--lc-ink); border-color: var(--lc-ink); }
.cmt-dot--on { background: var(--lc-ink); color: var(--lc-yellow); border-color: var(--lc-ink); }
.cmt-dot--done { background: var(--status-up, #2e7d32); color: #fff; border-color: transparent; }
.cmt-dot i, .cmt-dot svg { width: 14px; height: 14px; }

.cmt-pop { position: absolute; top: calc(100% + 8px); left: 0; z-index: 50; width: 320px;
  background: var(--lc-paper, #fff); border: 1px solid var(--border-hair); border-radius: var(--radius-md);
  box-shadow: var(--shadow-md, 0 10px 30px rgba(0,0,0,.16)); padding: 12px; text-align: left; }
.cmt-pop__head { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.cmt-pop__sect { font-family: var(--font-display); font-size: 13px; font-weight: 700; color: var(--lc-ink); letter-spacing: .01em; }
.cmt-pop__page { margin-left: auto; font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--text-muted); }
.cmt-pop__ta { width: 100%; box-sizing: border-box; resize: vertical; min-height: 78px;
  font-family: var(--font-text); font-size: 13px; color: var(--text-body); padding: 8px 10px;
  border: 1px solid var(--border-hair); border-radius: var(--radius-md); background: var(--lc-paper-2, #fafafa); }
.cmt-pop__ta:focus { outline: none; border-color: var(--lc-ink); background: #fff; }
.cmt-pop__err { color: var(--lc-red-deep); font-size: 12px; margin-top: 6px; }
.cmt-pop__foot { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.cmt-pop__hint { font-size: 11px; color: var(--text-muted); }
.cmt-pop__cancel { background: none; border: none; color: var(--text-muted); font-size: 12px; font-weight: 600; cursor: pointer; padding: 6px 8px; }
.cmt-pop__cancel:hover:not(:disabled) { color: var(--text-body); }
.cmt-pop__send { background: var(--lc-ink); color: var(--lc-yellow); border: none; border-radius: var(--radius-md);
  font-size: 12px; font-weight: 700; padding: 7px 14px; cursor: pointer; }
.cmt-pop__send:hover:not(:disabled) { background: #000; }
.cmt-pop__send:disabled, .cmt-pop__cancel:disabled { opacity: .45; cursor: not-allowed; }

/* Admin Feedback review table (reuses .access-table). */
.fb-table { table-layout: fixed; }
.fb-when { width: 150px; }
.fb-who { width: 190px; color: var(--text-body); word-break: break-word; }
.fb-ctx { color: var(--text-muted); }
.fb-comment { white-space: pre-wrap; color: var(--text-body); }

/* ============================================================
   Matter Activity Rail — following, notifications & @-mention feed
   (Feed.jsx / migration 0041). Two-column matter detail: main + rail.
   ============================================================ */
.matter-layout { display: flex; gap: 26px; align-items: flex-start; }
.matter-main { flex: 1; min-width: 0; }
.af-rail { width: 360px; flex: none; align-self: stretch; position: sticky; top: 12px;
  max-height: calc(100vh - 24px); display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--border-hair); border-radius: 12px; overflow: hidden; }
@media (max-width: 1100px) {
  .matter-layout { flex-direction: column; }
  .af-rail { width: 100%; position: static; max-height: none; }
}

.af-head { padding: 15px 15px 12px; border-bottom: 1px solid var(--border-hair); }
.af-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.af-title h3 { font-family: var(--font-display); font-size: 21px; letter-spacing: .03em; margin: 0;
  color: var(--text-strong); display: flex; align-items: center; gap: 8px; }
.af-yb { width: 5px; height: 17px; background: var(--lc-yellow); border-radius: 2px; display: inline-block; }
.af-sub { margin-top: 9px; font-size: 12px; color: var(--text-muted); display: flex; align-items: center; gap: 7px; }
.af-sub i, .af-sub svg { width: 13px; height: 13px; }
.af-dot { color: var(--lc-slate-300, #c8ccd2); }

.af-follow-wrap { position: relative; }
.af-btn { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-text); font-weight: 700;
  font-size: 12.5px; border-radius: 6px; padding: 8px 12px; cursor: pointer; border: 1.5px solid var(--lc-ink);
  background: var(--lc-ink); color: #fff; }
.af-btn:hover { filter: brightness(1.12); }
.af-btn svg, .af-btn i { width: 15px; height: 15px; }
.af-btn--on { background: var(--lc-yellow); color: #000; border-color: var(--lc-yellow-deep, #e6d400); }
.af-menu { position: absolute; top: calc(100% + 6px); right: 0; width: 244px; background: #fff;
  border: 1px solid var(--lc-slate-200, #e3e6ea); border-radius: 10px; box-shadow: 0 12px 30px rgba(14,18,24,.16);
  padding: 6px; z-index: 40; }
.af-mhead { font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase;
  color: var(--text-faint); padding: 8px 10px 6px; }
.af-mitem { display: flex; gap: 10px; align-items: flex-start; padding: 9px 10px; border-radius: 7px; cursor: pointer; }
.af-mitem:hover { background: var(--surface-sunken); }
.af-lead { width: 16px; height: 16px; margin-top: 1px; color: var(--text-body); }
.af-mtxt { flex: 1; }
.af-mtxt b { display: block; font-size: 13px; color: var(--text-strong); font-weight: 700; }
.af-mtxt span { display: block; font-size: 11.5px; color: var(--text-muted); line-height: 1.3; margin-top: 1px; }
.af-chk { width: 15px; height: 15px; color: var(--lc-red); opacity: 0; margin-top: 2px; }
.af-mitem--sel .af-chk { opacity: 1; }
.af-mitem--danger .af-mtxt b { color: var(--lc-red-deep, #c0161c); }
.af-div { height: 1px; background: var(--border-hair); margin: 5px 4px; }

.af-composer { padding: 12px 14px; border-bottom: 1px solid var(--border-hair); background: var(--surface-card); }
.af-comp-row { display: flex; gap: 9px; align-items: center; }
.af-av { width: 30px; height: 30px; border-radius: 50%; background: var(--lc-navy); color: #fff;
  font-weight: 800; font-size: 12px; display: grid; place-items: center; flex: none; }
.af-composer input, .af-composer textarea { flex: 1; border: 1px solid var(--lc-slate-200, #e3e6ea); border-radius: 8px;
  padding: 9px 11px; font-family: var(--font-text); font-size: 13px; color: var(--text-body); background: #fff; resize: none; }
.af-comp-field { flex: 1; position: relative; }
.af-comp-field textarea { width: 100%; min-height: 66px; }
.af-comp-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 9px; }
.af-bsm { font-size: 12px; font-weight: 700; border-radius: 6px; padding: 7px 13px; cursor: pointer;
  border: 1px solid transparent; font-family: var(--font-text); }
.af-bsm:disabled { opacity: .5; cursor: not-allowed; }
.af-bsm--post { background: var(--lc-red); color: #fff; }
.af-bsm--post:hover:not(:disabled) { background: var(--lc-red-deep, #c0161c); }
.af-bsm--ghost { background: transparent; color: var(--text-muted); border-color: var(--lc-slate-200, #e3e6ea); }

/* @-mention autocomplete */
.af-ment-menu { position: absolute; left: 0; right: 0; top: calc(100% + 4px); background: #fff;
  border: 1px solid var(--lc-slate-200, #e3e6ea); border-radius: 9px; box-shadow: 0 12px 30px rgba(14,18,24,.16);
  padding: 5px; z-index: 45; max-height: 220px; overflow: auto; }
.af-ment-item { display: flex; align-items: center; gap: 8px; padding: 7px 9px; border-radius: 6px; cursor: pointer; }
.af-ment-item:hover { background: var(--surface-sunken); }
.af-ment-av { width: 22px; height: 22px; border-radius: 50%; background: var(--lc-navy); color: #fff;
  font-weight: 800; font-size: 10px; display: grid; place-items: center; flex: none; }
.af-ment-nm { font-size: 12.5px; font-weight: 700; color: var(--text-strong); }
.af-ment-em { font-size: 11px; color: var(--text-muted); margin-left: auto; }
.af-ment-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.af-ment-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 700;
  background: rgba(231,29,37,.10); color: var(--lc-red-deep, #c0161c); border-radius: 20px; padding: 3px 6px 3px 8px; }
.af-ment-chip svg, .af-ment-chip i { width: 11px; height: 11px; }
.af-ment-chip button { border: none; background: none; cursor: pointer; color: inherit; display: inline-flex; padding: 1px; }

.af-err { margin: 10px 14px 0; font-size: 12px; color: var(--lc-red-deep, #c0161c); }

/* Suggested updates — AI-read facts awaiting a decision (0112). Capped in height so a
   backlog of suggestions never pushes the feed itself off the rail. */
.af-sugg { margin: 12px 14px 4px; border: 1px solid rgba(230,212,0,.55); background: rgba(252,238,33,.08);
  border-radius: 10px; padding: 10px 10px 4px; max-height: 46%; overflow: auto; flex: none; }
.af-sugg-head { display: flex; align-items: center; gap: 6px; font-size: 10.5px; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase; color: #6b5e00; }
.af-sugg-n { margin-left: auto; background: var(--lc-yellow); color: #000; border-radius: 10px;
  padding: 1px 7px; font-size: 10.5px; letter-spacing: 0; }
.af-sugg-sub { font-size: 11.5px; color: var(--text-muted); margin: 4px 0 8px; line-height: 1.35; }
.af-sugg-card { background: #fff; border: 1px solid var(--border-hair); border-radius: 8px; padding: 9px 10px; margin-bottom: 8px; }
.af-sugg-top { display: flex; align-items: center; gap: 6px; }
.af-sugg-kind { font-size: 9.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  padding: 2px 6px; border-radius: 4px; background: var(--surface-sunken); color: var(--text-muted); }
.af-sugg-conf { margin-left: auto; font-size: 11px; color: var(--text-faint); font-variant-numeric: tabular-nums; }
.af-sugg-sum { font-size: 13px; font-weight: 700; color: var(--text-strong); margin-top: 5px; line-height: 1.3; }
.af-sugg-ev { font-size: 12px; color: var(--text-body); font-style: italic; margin-top: 4px; line-height: 1.4; }
.af-sugg-src { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; font-size: 11.5px; font-weight: 700;
  color: var(--lc-red-deep, #c0161c); }
.af-sugg-act { display: flex; justify-content: flex-end; gap: 7px; margin-top: 8px; }
.af-sugg-act .af-bsm { display: inline-flex; align-items: center; gap: 5px; padding: 6px 11px; }
.af-item-note { font-size: 11px; color: var(--text-faint); margin-top: 4px; font-style: italic; }
.af-item-also { font-size: 11px; color: var(--text-muted); margin-top: 6px; line-height: 1.5; }
.af-item-also a { color: var(--text-muted); text-decoration: underline; text-underline-offset: 2px; }
.af-item-also a:hover { color: var(--text-strong); }

.af-feed { flex: 1; overflow: auto; padding: 4px 0 24px; }
.af-empty { padding: 30px 20px; text-align: center; color: var(--text-muted); font-size: 12.5px;
  display: flex; flex-direction: column; align-items: center; gap: 10px; }
.af-empty svg, .af-empty i { width: 22px; height: 22px; color: var(--text-faint); }
.af-daydiv { display: flex; align-items: center; gap: 10px; padding: 15px 15px 7px; }
.af-daydiv span { font-size: 10.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--text-faint); white-space: nowrap; }
.af-ln { flex: 1; height: 1px; background: var(--border-hair); }
.af-pinrow { font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
  color: var(--lc-yellow-deep, #b59b00); display: flex; align-items: center; gap: 5px; padding: 12px 15px 2px; }
.af-pinrow svg, .af-pinrow i { width: 12px; height: 12px; }

.af-item { display: flex; gap: 11px; padding: 11px 15px; position: relative; }
.af-item:hover { background: var(--surface-card); }
.af-item:hover .af-item-act { opacity: 1; }
.af-src { width: 32px; height: 32px; border-radius: 8px; flex: none; display: grid; place-items: center; color: #fff;
  font-weight: 800; font-size: 12px; }
.af-src svg, .af-src i { width: 16px; height: 16px; }
.af-src--tracker { background: var(--lc-yellow); color: #000; }
.af-src--iconik { background: var(--lc-navy); }
.af-src--system { background: var(--lc-slate-500, #6b7280); }
.af-src--user { background: var(--lc-red-deep, #c0161c); }
.af-item-body { flex: 1; min-width: 0; }
.af-item-top { display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.af-who { font-size: 12.5px; font-weight: 700; color: var(--text-strong); }
.af-stag { font-size: 9.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: 2px 6px; border-radius: 4px; }
.af-stag--tracker { background: rgba(230,212,0,.28); color: #6b5e00; }
.af-stag--iconik { background: var(--lc-navy); color: #fff; }
.af-stag--system { background: var(--surface-sunken); color: var(--text-muted); }
.af-stag--user { background: rgba(231,29,37,.12); color: var(--lc-red-deep, #c0161c); }
.af-ts { margin-left: auto; font-size: 11px; color: var(--text-faint); white-space: nowrap; font-variant-numeric: tabular-nums; }
.af-item-title { font-size: 13.5px; font-weight: 600; color: var(--text-strong); line-height: 1.32; margin: 3px 0 0; }
.af-item-text { font-size: 12.5px; color: var(--text-body); line-height: 1.42; margin-top: 3px; white-space: pre-wrap; }
.af-item-ment { font-size: 11px; color: var(--text-muted); margin-top: 6px; display: flex; align-items: center; gap: 5px; }
.af-item-ment svg, .af-item-ment i { width: 12px; height: 12px; }
.af-item-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 11.5px; font-weight: 700;
  color: var(--lc-red-deep, #c0161c); border: 1px solid var(--border-hair); background: #fff; border-radius: 6px; padding: 5px 9px; }
.af-item-link svg, .af-item-link i { width: 13px; height: 13px; }
.af-item-act { position: absolute; top: 9px; right: 12px; opacity: 0; transition: opacity .12s; display: flex; gap: 2px; }
.af-item-act button { border: none; background: transparent; color: var(--text-faint); cursor: pointer; padding: 3px; border-radius: 5px; }
.af-item-act button:hover { background: var(--surface-sunken); color: var(--text-body); }
.af-item-act svg, .af-item-act i { width: 14px; height: 14px; }

/* ---- Tranche 2·B — field clarity ---------------------------------------- */
/* Hoverable info icon next to a field label (native title tooltip). */
.fhelp { display: inline-flex; vertical-align: middle; margin: 0 2px; color: var(--text-faint); cursor: help; }
.fhelp svg, .fhelp i { width: 13px; height: 13px; }
.fhelp:hover { color: var(--text-muted); }
.fnote { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--text-faint); font-size: 11px; margin-left: 6px; }

/* Clickable URL value in the locked overview (court website, footage link). */
.ov-link { display: inline-flex; align-items: center; gap: 5px; color: var(--lc-red, #e71d25); font-family: var(--font-text); font-size: 13.5px; text-decoration: none; word-break: break-all; }
.ov-link:hover { text-decoration: underline; }
.ov-link svg, .ov-link i { width: 13px; height: 13px; flex: none; }

/* Prominent state chip in the matter header status row. */
.mstatus--state { background: #eef3ee; color: #3c6b4f; border-color: #cfe0d4; font-weight: 700; }
.mstatus--state svg, .mstatus--state i { width: 12px; height: 12px; margin-right: 3px; }

/* Editable display name (slug) in the matter header. */
.alias-pencil { border: none; background: transparent; color: var(--text-faint); cursor: pointer; padding: 2px 4px; margin-left: 6px; border-radius: 5px; vertical-align: middle; }
.alias-pencil:hover { background: var(--surface-sunken); color: var(--text-body); }
.alias-pencil svg, .alias-pencil i { width: 15px; height: 15px; }
.alias-edit { display: flex; align-items: center; gap: 8px; margin: 2px 0 4px; flex-wrap: wrap; }
.alias-edit .lc-input { max-width: 420px; font-size: 20px; font-weight: 700; }
.alias-anchor { font-size: 11.5px; color: var(--text-faint); margin: 0 0 4px; }
.alias-anchor b { color: var(--text-muted); font-weight: 600; }

/* Victims names & ages block in the "What it is" overview section. */
.ov-victims { margin-top: 14px; }
.victim-chips { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 2px; }
.victim-chip { display: inline-flex; align-items: center; gap: 7px; background: #fbf6ea; border: 1px solid #efe1bd; color: var(--lc-ink, #151a24); border-radius: 999px; padding: 4px 10px; font-size: 13px; font-weight: 600; }
.victim-age { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 20px; padding: 0 6px; background: var(--lc-ink, #151a24); color: #fff; border-radius: 999px; font-size: 11.5px; font-weight: 700; }

/* ── Asset Requests Phase 2: deliveries + cost/approval (RequestOpsPanel) ── */
.rq-ops { margin-top: 14px; border-top: 1px solid var(--border-hair); padding-top: 12px; }
.rq-ops-head { display: flex; align-items: center; justify-content: space-between; margin: 10px 0 8px; }
.rq-ops-head > span { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--text-muted); }
.rq-ops-head svg { width: 15px; height: 15px; }
.rq-ops-head--cost { margin-top: 18px; padding-top: 14px; border-top: 1px dashed var(--border-hair); }
.rq-ops-form { background: var(--lc-paper-2); border: 1px solid var(--border-hair); border-radius: 10px; padding: 14px; margin-bottom: 12px; }
.rq-ops-empty { font-size: 12.5px; color: var(--text-muted); padding: 4px 0 6px; }

.rq-slug { margin: 12px 0; padding: 12px; border: 1px dashed var(--border-hair); border-radius: 10px; background: var(--surface-card); }
.rq-slug-head { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 10px; }
.rq-slug-head svg { width: 14px; height: 14px; }
.rq-slug-row { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.rq-slug-path { flex: 1; font-family: var(--font-mono, monospace); font-size: 12px; }
.rq-slug-hint { font-size: 11px; color: var(--text-muted); margin-top: 6px; }

.rq-copy { display: inline-flex; align-items: center; gap: 4px; font-family: var(--font-text); font-size: 11px; font-weight: 700; padding: 5px 9px; border: 1px solid var(--border-hair); border-radius: 7px; background: var(--surface-card); color: var(--text-muted); cursor: pointer; white-space: nowrap; }
.rq-copy:hover { color: var(--text-strong); }
.rq-copy svg { width: 13px; height: 13px; }
.rq-copy--sm { padding: 2px 7px; font-size: 10.5px; }

.rq-deliv { list-style: none; margin: 0 0 4px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.rq-deliv-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 10px 12px; border: 1px solid var(--border-hair); border-radius: 10px; background: var(--surface-card); }
.rq-deliv-main { min-width: 0; flex: 1; }
.rq-deliv-top { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.rq-deliv-date, .rq-deliv-meta { font-size: 11.5px; color: var(--text-muted); }
.rq-deliv-meta { font-variant-numeric: tabular-nums; }
.rq-deliv-path { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.rq-deliv-path code { font-family: var(--font-mono, monospace); font-size: 11.5px; color: var(--text-strong); background: var(--lc-slate-100); padding: 2px 7px; border-radius: 5px; overflow-wrap: anywhere; }
.rq-deliv-notes { font-size: 12px; color: var(--text-muted); margin-top: 6px; line-height: 1.4; }
.rq-deliv-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

.rq-del { display: inline-flex; align-items: center; gap: 4px; border: none; background: none; color: var(--text-muted); cursor: pointer; font-family: var(--font-text); font-size: 12px; font-weight: 700; padding: 4px; }
.rq-del:hover { color: var(--lc-crime-red, #e71d25); }
.rq-del svg { width: 15px; height: 15px; }
.rq-del-confirm { display: inline-flex; align-items: center; gap: 6px; }
.rq-del--yes { color: var(--lc-crime-red, #e71d25); }
.rq-del--no { color: var(--text-muted); }

.rq-cost-read { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; padding: 4px 0 10px; font-size: 12.5px; }
.rq-cost-read b { font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); margin-right: 5px; }
.rq-cost-flag { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; color: #8a7400; }
.rq-cost-flag svg { width: 14px; height: 14px; }
.rq-cost-trail { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.rq-cost-item { border-bottom: 1px solid var(--border-hair); }
.rq-cost-item:last-child { border-bottom: none; }
.rq-cost-ev { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 9px; padding: 6px 0; font-size: 12.5px; }
/* B5 (0160): each cost event carries its own invoice / receipt documents */
.rq-cost-docs-btn { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; font-size: 12px; white-space: nowrap; }
.rq-cost-docs-btn svg { width: 13px; height: 13px; }
.rq-cost-docs { margin: 2px 0 10px; padding: 10px 12px; border: 1px solid var(--border-hair); border-radius: 8px; background: var(--surface-1, #fff); }
.rq-cost-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--lc-slate-300); flex-shrink: 0; }
.rq-cost-dot--paid, .rq-cost-dot--approved { background: #1f8a4c; }
.rq-cost-dot--rejected { background: #e71d25; }
.rq-cost-dot--negotiated, .rq-cost-dot--quoted { background: #2e6bb8; }
.rq-cost-dot--approval_requested { background: #8a7400; }
.rq-cost-type { font-weight: 700; }
.rq-cost-amt { font-variant-numeric: tabular-nums; font-weight: 700; }
.rq-cost-note { color: var(--text-muted); flex: 1 1 160px; min-width: 0; overflow-wrap: anywhere; }
.rq-cost-when { font-size: 11px; color: var(--text-muted); font-variant-numeric: tabular-nums; }

/* ── Asset Requests desk: clickable rows + editable request detail (RequestDetail) ── */
.opsq-row--click { cursor: pointer; }
.opsq-row--click:hover { background: var(--lc-paper-2); }
.opsq-inline { cursor: pointer; }
.rq-ops-team { font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--text-faint, #9aa0ab); font-size: 10px; margin-left: 8px; }
.rq-desk-hint { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--text-muted); background: var(--lc-paper-2); border: 1px dashed var(--border-hair); border-radius: 8px; padding: 9px 12px; margin-top: 12px; }
.rq-desk-hint svg { width: 15px; height: 15px; flex-shrink: 0; }

.rqd-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 8px 0 16px; flex-wrap: wrap; }
.rqd-head-l { display: flex; align-items: center; gap: 10px; }
.rqd-id { font-family: var(--font-mono, monospace); font-weight: 800; font-size: 17px; color: var(--text-strong); }
.rqd-matter { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; }
.rqd-matter svg { width: 14px; height: 14px; }
.rqd-sec-head { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 12px; }
.rqd-sec-head svg { width: 15px; height: 15px; }
.rqd-hint { font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--text-faint, #9aa0ab); font-size: 11.5px; }
.rqd-check { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--text-strong); align-self: center; }
.rqd-check input { width: 15px; height: 15px; }

/* Pager — server-side pagination on the Matters list (and the capped
   awaiting-court-date watchlist). Added when the Airtable load took the
   matters table from ~30 rows to ~3,000. */
.pager {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 12px 4px 0;
}
.pager--note { padding: 0 0 12px; }
/* Inside a Card.Body whose padding is 0 (a table sits flush to the card edge), so
   the pager supplies its own inset and a hairline to sit under the last row. */
.pager--incard { padding: 10px 16px; border-top: 1px solid var(--border-hair); }
.pager__count { color: var(--text-muted); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.pager__nav { display: flex; gap: 8px; }
.pager__nav button[disabled] { opacity: .45; pointer-events: none; }

/* ── C1: lane switcher, worklist buckets ─────────────────────────────────────
   The lane switcher lives in the topbar, not on a page, because the lane is a
   scope every surface inherits rather than one page's filter. */
.lanesw { display: flex; align-items: center; gap: 2px; padding: 3px;
  background: var(--surface-2, rgba(255,255,255,.04)); border-radius: 999px;
  border: 1px solid var(--border, rgba(255,255,255,.10)); margin-right: 14px; }
.lanesw__b { display: inline-flex; align-items: center; gap: 7px; cursor: pointer;
  padding: 6px 13px; border: 0; background: transparent; border-radius: 999px;
  color: var(--text-muted); font: inherit; font-size: 12.5px; font-weight: 600;
  letter-spacing: .01em; white-space: nowrap; transition: background .12s, color .12s; }
.lanesw__b:hover { color: var(--text); background: rgba(255,255,255,.05); }
.lanesw__b svg { width: 15px; height: 15px; }
.lanesw__b--on { background: var(--tape-yellow, #FCEE21); color: #151A24; }
.lanesw__b--on:hover { background: var(--tape-yellow, #FCEE21); color: #151A24; }
.lanesw__n { font-variant-numeric: tabular-nums; font-weight: 700; font-size: 11.5px;
  opacity: .62; }
.lanesw__b--on .lanesw__n { opacity: .70; }
@media (max-width: 1080px) { .lanesw__b span { display: none; } .lanesw__b { padding: 6px 9px; } }

/* Due-date buckets — the police-video worklist's actual answer. The counts are
   the surface; the table underneath is the drill-in. */
.buckets { display: flex; gap: 10px; flex-wrap: wrap; }
.bucket { flex: 1 1 132px; min-width: 132px; cursor: pointer; text-align: left;
  display: flex; flex-direction: column; gap: 2px; padding: 13px 15px;
  border-radius: var(--radius, 10px); border: 1px solid var(--border, rgba(255,255,255,.10));
  background: var(--surface, rgba(255,255,255,.03)); color: var(--text);
  font: inherit; transition: border-color .12s, background .12s, transform .08s; }
.bucket:hover { background: rgba(255,255,255,.055); transform: translateY(-1px); }
.bucket svg { width: 15px; height: 15px; color: var(--text-muted); }
.bucket__n { font-size: 25px; font-weight: 700; line-height: 1.15;
  font-variant-numeric: tabular-nums; }
.bucket__l { font-size: 12px; color: var(--text-muted); font-weight: 600; }
.bucket--on { border-color: var(--tape-yellow, #FCEE21); background: rgba(252,238,33,.07); }
.bucket--bad .bucket__n { color: var(--crime-red, #E71D25); }
.bucket--bad svg { color: var(--crime-red, #E71D25); }
.bucket--hot .bucket__n { color: var(--tape-yellow, #FCEE21); }
.bucket--muted .bucket__n { color: var(--text-muted); }

/* Inline checkbox filter (Has media), sized to sit on the Select baseline. */
.chkfilter { display: inline-flex; align-items: center; gap: 7px; cursor: pointer;
  padding: 9px 12px; border-radius: var(--radius, 10px); user-select: none;
  border: 1px solid var(--border, rgba(255,255,255,.10));
  background: var(--surface, rgba(255,255,255,.03));
  font-size: 13px; color: var(--text); white-space: nowrap; }
.chkfilter:hover { background: rgba(255,255,255,.055); }
.chkfilter input { accent-color: var(--tape-yellow, #FCEE21); width: 15px; height: 15px; margin: 0; }

/* Truncation notice — a cap the user can see is a cap; one they can't is a lie. */
.ledger-note { display: flex; align-items: center; gap: 9px; padding: 10px 14px;
  border-radius: var(--radius, 10px); font-size: 13px; color: var(--text-muted);
  border: 1px solid var(--border, rgba(255,255,255,.10));
  background: var(--surface, rgba(255,255,255,.03)); }
.ledger-note b { color: var(--text); font-variant-numeric: tabular-nums; }
.ledger-note svg { width: 15px; height: 15px; flex: none; }

.page-lede { margin: -4px 0 18px; color: var(--text-muted); font-size: 13.5px; max-width: 76ch; }
.page-lede b { color: var(--text); font-variant-numeric: tabular-nums; }

/* Lane badge on a search result (C1 / 0086). Search RANKS by lane rather than
   filtering, so an out-of-lane hit still appears — highlighted, because that is
   the case the user needs to see rather than assume search missed it. */
.lanebadge { display: inline-flex; align-items: center; gap: 5px; flex: none;
  padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 700;
  letter-spacing: .02em; white-space: nowrap;
  border: 1px solid var(--border-hair, rgba(0,0,0,.12));
  background: var(--lc-paper, rgba(0,0,0,.03)); color: var(--lc-slate-500, #667); }
.lanebadge svg { width: 12px; height: 12px; }
.lanebadge--out { border-color: var(--tape-yellow, #FCEE21);
  background: rgba(252,238,33,.20); color: var(--lc-ink, #151A24); }

/* ---- Coverage + Content tabs (matter page cleanup, 2026-09-17) ----
   Three sections on Coverage, one of which the matter page does not own. The
   `--owner` badge and the note under each heading exist so a read-only section
   reads as somebody else's record rather than as a broken editor. */
.cov-owner { display: inline-flex; align-items: center; gap: 5px;
  font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--text-muted); border: 1px solid var(--border-hair); border-radius: 999px;
  padding: 3px 9px; background: var(--lc-paper, rgba(0,0,0,.03)); white-space: nowrap; }
.cov-owner svg { width: 11px; height: 11px; }
.cov-ownernote { font-size: 12.5px; color: var(--text-muted); margin: -2px 0 12px; max-width: 70ch; }

.cov-subhead { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--text-muted); margin: 0 0 8px; }
.cov-overrides { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border-hair); }
.cov-override { padding: 8px 0; border-bottom: 1px solid var(--border-hair); }
.cov-override:last-child { border-bottom: none; }
.cov-override b { font-size: 13px; color: var(--lc-ink); }
.cov-reqshows { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border-hair); }
.cov-links { margin-top: 22px; }

/* Matter tab row wraps rather than running off the right edge (2026-10-08): on a
   laptop-width window the last tabs, and their counts, were clipped out of view. */
.matter-tabs .lc-tabs { flex-wrap: wrap; column-gap: 22px; row-gap: 4px; }
.matter-tabs .lc-tab + .lc-tab { margin-left: 0; }

/* Home: one line under "Today's court dates" saying where the rows come from. */
.home-srcnote { padding: 8px 16px; font-size: 12px; color: var(--text-muted);
  border-bottom: 1px solid var(--border-hair); }

/* A server path (Z:\__TRIALS\…) can't be opened from a browser, so it is shown as
   selectable text instead of a link that would silently do nothing when clicked. */
/* .linklist's li-main styles the title as a <b>; these rows title with an <a> (the
   whole point is that they open), so the anchor needs the same block behaviour or
   the metadata line runs into the end of the link text. */
.linklist .li-main > a.ov-link { display: block; font-size: 13px; font-weight: 700; margin-bottom: 2px; }

.ct-path { display: block; min-width: 0; }
.ct-path svg { width: 14px; height: 14px; vertical-align: -2px; margin-right: 5px; color: var(--text-muted); }
.ct-path b { display: inline !important; }
.ct-code { display: block; margin-top: 3px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11.5px; color: var(--text-muted); word-break: break-all; user-select: all; }
.linklist .li-main .ct-desc { display: block; margin-top: 3px; color: var(--text-muted); }

/* In Iconik card (0156): counts by kind on one wrapping line, then folder links.
   Ink and muted greys only; no yellow (rule 37). */
.ica-total { font-size: 12.5px; font-weight: 700; color: var(--text-muted); }
.ica-kinds { display: flex; flex-wrap: wrap; gap: 6px 8px; margin-bottom: 4px; }
.ica-kind { font-size: 13px; color: var(--text); border: 1px solid var(--border-hair);
  border-radius: 999px; padding: 3px 10px; white-space: nowrap; }
.ica-kind b { font-weight: 800; margin-right: 2px; }
.ica-untyped { color: var(--text-muted); border-style: dashed; }
.ica-note { font-size: 13px; color: var(--text-muted); }
.ica-folders { margin-top: 10px; padding-top: 6px; border-top: 1px solid var(--border-hair); }
.ica-folders a.ov-link svg { width: 14px; height: 14px; vertical-align: -2px; margin-right: 5px; }
.ica-foot { margin-top: 10px; font-size: 12px; color: var(--text-muted); }

/* ---- Title review (now the Metadata desk; .tr-* reused there) ----
   A before/after, not a form: the left column is what the matter says now, the right
   is what would replace it. Two columns on a wide screen, stacked below 900px — a
   diff that wraps into one column is just two paragraphs. */
.tr-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px;
  flex-wrap: wrap; margin-bottom: 14px; }
.tr-bands { display: flex; gap: 6px; flex-wrap: wrap; }
.tr-n { margin-left: 6px; font-size: 11px; opacity: .75; font-variant-numeric: tabular-nums; }
.tr-done { font-size: 12px; color: var(--text-muted); font-variant-numeric: tabular-nums; }

.tr-bulk { display: flex; align-items: center; justify-content: space-between; gap: 14px;
  flex-wrap: wrap; padding: 11px 14px; margin-bottom: 14px; font-size: 13px;
  border: 1px solid var(--border-hair); border-left: 3px solid var(--tape-yellow, #FCEE21);
  border-radius: var(--radius-md); background: var(--lc-paper, rgba(0,0,0,.02)); }
.tr-bulk-arm { display: flex; align-items: center; gap: 10px; }

.tr-head { display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-bottom: 10px; }
.tr-id { font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
  color: var(--text-muted); font-variant-numeric: tabular-nums; }
.tr-meta { display: inline-flex; align-items: center; gap: 8px; }

.tr-conf { font-size: 11.5px; font-weight: 700; padding: 2px 7px; border-radius: 999px;
  font-variant-numeric: tabular-nums; border: 1px solid var(--border-hair); }
.tr-conf--high { background: rgba(35,140,70,.12); color: #1c6b39; border-color: rgba(35,140,70,.3); }
.tr-conf--mid  { background: rgba(46,107,184,.12); color: #1d4e89; border-color: rgba(46,107,184,.3); } /* not yellow: hard to read (operator rule) */
.tr-conf--low  { background: rgba(231,29,37,.10); color: var(--lc-red, #E71D25); border-color: rgba(231,29,37,.28); }

.tr-flag { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700;
  letter-spacing: .04em; padding: 2px 8px; border-radius: 999px; cursor: help;
  background: rgba(231,29,37,.09); color: var(--lc-red, #E71D25); border: 1px solid rgba(231,29,37,.25); }
.tr-flag svg { width: 12px; height: 12px; }

.tr-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
@media (max-width: 900px) { .tr-grid { grid-template-columns: 1fr; gap: 14px; } }
.tr-side { min-width: 0; }
.tr-label { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--text-muted); margin-bottom: 6px; }
.tr-edited { margin-left: 6px; letter-spacing: 0; text-transform: none; font-weight: 600;
  color: var(--lc-red, #E71D25); }
.tr-now { font-size: 13.5px; line-height: 1.5; color: var(--lc-ink); word-break: break-word;
  padding: 9px 11px; border: 1px solid var(--border-hair); border-radius: var(--radius-md);
  background: var(--lc-paper, rgba(0,0,0,.02)); }
.tr-warn { display: flex; gap: 6px; margin-top: 8px; font-size: 12px; color: var(--lc-red, #E71D25); }
.tr-warn svg { width: 14px; height: 14px; flex: none; margin-top: 2px; }
.tr-existing { margin-top: 12px; }
.tr-existing-body { font-size: 12.5px; line-height: 1.5; color: var(--text-muted);
  white-space: pre-wrap; word-break: break-word; }
.tr-ta { min-height: 54px; }
.tr-badalias { font-size: 11.5px; color: var(--lc-red, #E71D25); margin-top: 4px; }

.tr-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px;
  margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border-hair); }
.tr-actions .lc-input { max-width: 320px; }
.tr-bulk-held { display: flex; gap: 6px; margin-top: 7px; font-size: 12px;
  color: var(--lc-red, #E71D25); }
.tr-bulk-held svg { width: 13px; height: 13px; flex: none; margin-top: 2px; }

/* ---- Trial Calendar: time zone + Day view (2026-09-18) --------------------
   Every time on the calendar is Eastern and says so. The Day view is a time axis;
   blocks are one hour because the data has no end time (the tooltip says so). */
.cal-tznote { margin-left: auto; font-weight: 700; color: var(--text-body); }
.cal-tznote svg { width: 13px; height: 13px; }
.cal-dayview { display: flex; flex-direction: column; gap: 12px; }
.cal-tzbar { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid var(--border-hair); border-left: 3px solid var(--lc-yellow); border-radius: 8px; background: var(--lc-paper); font-size: 12.5px; color: var(--text-body); }
.cal-tzbar svg { width: 15px; height: 15px; flex: none; color: var(--lc-ink); }
.cal-allday { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--border-hair); border-radius: 10px; background: var(--lc-paper); }
.cal-allday-lbl { flex: none; width: 64px; padding-top: 5px; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.cal-allday-list { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; max-width: 100%; flex: 1; }
.cal-achip { display: inline-flex; align-items: center; gap: 6px; max-width: min(360px, 100%); min-width: 0; border: none; border-radius: 6px; padding: 5px 9px; font-family: var(--font-text); font-size: 12px; cursor: pointer; text-align: left; box-shadow: inset 3px 0 0 rgba(0,0,0,.16); }
.cal-achip b { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.cal-achip span { white-space: nowrap; opacity: .85; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; }
.cal-allday-n { display: inline-block; margin-left: 2px; color: var(--text-body); }
.cal-allday-more { align-self: center; font-size: 12px; font-weight: 700; }
.cal-achip:hover, .cal-dcard:hover { filter: brightness(.95); }
.cal-covdot { display: inline-block; width: 7px; height: 7px; border-radius: 4px; background: #38d17a; box-shadow: 0 0 0 1px rgba(0,0,0,.25); flex: none; }
.cal-tl { position: relative; border: 1px solid var(--border-hair); border-radius: 10px; background: var(--lc-paper); overflow: hidden; }
.cal-tl-hour { position: absolute; left: 0; right: 0; height: 64px; border-top: 1px solid var(--border-hair); }
.cal-tl-hour:first-child { border-top: none; }
.cal-tl-lbl { position: absolute; left: 10px; top: 4px; font-size: 11px; font-weight: 700; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.cal-tl-now { position: absolute; left: 64px; right: 0; height: 0; border-top: 2px solid #D8423E; z-index: 3; pointer-events: none; }
.cal-tl-now::before { content: ""; position: absolute; left: -5px; top: -6px; width: 10px; height: 10px; border-radius: 5px; background: #D8423E; }
.cal-tl-track { position: absolute; top: 0; bottom: 0; left: 64px; right: 6px; border-left: 1px solid var(--border-hair); }
.cal-dcard { position: absolute; display: flex; flex-direction: column; gap: 1px; padding: 5px 8px; border: none; border-radius: 6px; cursor: pointer; text-align: left; overflow: hidden; font-family: var(--font-text); font-size: 11.5px; line-height: 1.3; box-shadow: inset 3px 0 0 rgba(0,0,0,.16); z-index: 1; }
.cal-dcard-time { display: flex; align-items: center; gap: 6px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cal-dcard-time b { font-size: 12px; }
.cal-dcard-court { font-size: 10.5px; font-weight: 600; opacity: .8; overflow: hidden; text-overflow: ellipsis; }
.cal-dcard-name { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-dcard-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: .85; }
/* Three view buttons + two filters no longer fit beside a long day heading. */
.cal-bar { flex-wrap: wrap; row-gap: 10px; }
.cal-bar-right { flex-wrap: wrap; row-gap: 8px; }
@media (max-width: 720px) {
  .cal-allday { flex-direction: column; align-items: stretch; gap: 6px; }
  .cal-tznote { margin-left: 0; }
}

/* Filing deadline on a matter's Case events (0116). Amber, not a court-event
   colour: it is something due, not somewhere to be. */
.evtag { display: inline-flex; align-items: center; gap: 4px; padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .02em; vertical-align: 1px; }
.evtag svg { width: 12px; height: 12px; }
.evtag--deadline { background: #FBEBD0; color: #8a5312; }

/* A span React owns around an icon it may unmount (lucide swaps the <i> for an <svg>
   outside React; see Shell.jsx). Layout-neutral. */
.ic-wrap, .ta-spin-wrap { display: inline-flex; align-items: center; line-height: 0; flex: none; }

/* ── Content Operations → Freelancers (0125-0128) ─────────────────────────────── */
.fl-readonly { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; margin-bottom: 16px;
  border: 1px solid var(--border-hair); border-left: 3px solid #8a7400; border-radius: 10px;
  background: rgba(252,238,33,.12); font-size: 13px; line-height: 1.5; color: var(--lc-ink); }
.fl-readonly svg { width: 16px; height: 16px; flex: none; margin-top: 2px; }
.fl-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border-hair); margin-bottom: 16px; }
.fl-tab { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border: 0; background: none;
  font: 600 13px var(--font-text); color: var(--text-muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.fl-tab svg { width: 15px; height: 15px; }
.fl-tab--on { color: var(--lc-ink); border-bottom-color: var(--lc-red, #E71D25); }
.fl-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 10px; }
.fl-filters .lc-field { min-width: 170px; }
.fl-search { flex: 1 1 280px; min-width: 220px; }
.fl-toggles { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 14px; }
.fl-count { font-size: 12px; color: var(--text-muted); margin-left: 6px; font-variant-numeric: tabular-nums; }
.fl-table td { vertical-align: top; }
.fl-name { font-weight: 700; color: var(--lc-ink); }
.fl-pref { font-weight: 500; color: var(--text-muted); }
.fl-sub { font-size: 12px; color: var(--text-muted); }
.fl-faint { color: var(--text-faint); }
.fl-num { font-variant-numeric: tabular-nums; text-align: right; }
.fl-travel { margin-left: 6px; }
.fl-badges { white-space: nowrap; text-align: right; }
.fl-badge { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 2px 7px; border-radius: 999px; margin-left: 4px;
  border: 1px solid var(--border-hair); color: var(--text-muted); background: var(--lc-paper); }
.fl-badge--off { color: var(--lc-slate-700, #3b4252); background: var(--lc-paper-2); }
.fl-badge--warn { color: #9b1c1f; border-color: rgba(231,29,37,.3); background: rgba(231,29,37,.06); }
.fl-issues { border: 1px solid rgba(231,29,37,.28); background: rgba(231,29,37,.06); border-radius: 10px;
  padding: 10px 14px; margin-bottom: 14px; font-size: 13px; }
.fl-issues ul { margin: 6px 0 4px 18px; padding: 0; }
.fl-issues--soft { border-color: var(--border-hair); background: var(--lc-paper-2); }
.fl-dup { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 14px; font-size: 13px; }
.fl-dup svg { width: 15px; height: 15px; }
.fl-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
@media (max-width: 760px) { .fl-form { grid-template-columns: 1fr; } }
.fl-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fl-field--wide { grid-column: 1 / -1; }
.fl-field--bad .lc-input { border-color: var(--lc-red, #E71D25); }
.fl-states { display: flex; flex-wrap: wrap; gap: 4px; }
.fl-st { font: 700 11px var(--font-mono, ui-monospace, monospace); padding: 4px 6px; border-radius: 6px; cursor: pointer;
  border: 1px solid var(--border-hair); background: var(--lc-paper); color: var(--text-muted); }
.fl-st--on { background: var(--lc-ink); color: #fff; border-color: var(--lc-ink); }
.fl-st:disabled { opacity: .3; cursor: default; }
.fl-check { display: inline-flex; gap: 6px; align-items: center; font-size: 13px; margin-top: 8px; }
.fl-roles { display: flex; flex-wrap: wrap; gap: 6px; }
.fl-role--dead { text-decoration: line-through; opacity: .7; }
.fl-profile .page-head { align-items: flex-start; }
.fl-head-actions { display: flex; gap: 8px; }
.fl-unavail { display: flex; gap: 6px; align-items: center; padding: 10px 14px; margin-bottom: 14px; border-radius: 10px;
  background: var(--lc-paper-2); font-size: 13px; }
.fl-unavail svg { width: 15px; height: 15px; }
.fl-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
@media (max-width: 900px) { .fl-cols { grid-template-columns: 1fr; } }
.fl-kv { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 10px; padding: 5px 0; font-size: 13px; }
.fl-kv > span { color: var(--text-muted); font-size: 12px; }
.fl-kv a { word-break: break-all; }
.fl-sec-head { display: flex; justify-content: space-between; align-items: center; }
.fl-rates { font-size: 14px; font-weight: 600; color: var(--lc-ink); }
.fl-pre { font-size: 13px; line-height: 1.5; white-space: pre-wrap; word-break: break-word; margin-bottom: 6px; }
.fl-rates-edit { display: flex; flex-direction: column; gap: 8px; }
.fl-rate-row { display: grid; grid-template-columns: 150px 90px minmax(0, 1fr) auto; gap: 8px; align-items: center; margin: 4px 0; }
.fl-amt { font-variant-numeric: tabular-nums; }
.fl-unavail-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fl-unavail-form .lc-input { flex: 1 1 200px; }
.fl-history { list-style: none; margin: 6px 0 0; padding: 0; font-size: 13px; }
.fl-history li { padding: 5px 0; border-bottom: 1px solid var(--border-hair); }
.fl-history li:last-child { border-bottom: 0; }
.fl-summary { font-size: 14px; line-height: 1.5; color: var(--lc-ink); margin-bottom: 4px; word-break: break-word; }
.fl-diff { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; padding: 8px 10px; margin: 6px 0;
  border-radius: 8px; background: var(--lc-paper-2); font-size: 13px; }
.fl-diff-row { display: grid; grid-template-columns: 110px minmax(0, 1fr) 16px minmax(0, 1fr); gap: 8px; align-items: center; width: 100%; }
.fl-diff-row--note { grid-template-columns: 110px minmax(0, 1fr); }
.fl-diff-row svg { width: 13px; height: 13px; color: var(--text-faint); }
.fl-diff-k { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }
.fl-diff-a { color: var(--text-muted); text-decoration: line-through; text-decoration-color: rgba(0,0,0,.25); word-break: break-word; }
.fl-diff-b { color: var(--lc-ink); font-weight: 600; word-break: break-word; }
@media (max-width: 640px) { .fl-diff-row { grid-template-columns: 1fr; } .fl-diff-row svg { display: none; } .fl-rate-row { grid-template-columns: 1fr 1fr; } }
.fl-ovr { display: grid; grid-template-columns: 130px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 6px 0;
  border-bottom: 1px solid var(--border-hair); font-size: 13px; }
.fl-ovr:last-child { border-bottom: 0; }

/* ---- Metadata desk (Content Ops, 0130) ----
   Grouped by matter: one card per case, one row per proposal. Reuses the .tr-* pills
   (confidence, flag, bulk bar) from the title-review page it replaced. */
.ic-wrap { display: inline-flex; }
.ic-wrap svg { width: 14px; height: 14px; }
.md-stats { display: flex; gap: 18px; }
.md-stats div { display: flex; flex-direction: column; align-items: flex-end; }
.md-stats b { font-size: 22px; font-variant-numeric: tabular-nums; line-height: 1.1; }
.md-stats span { font-size: 11px; color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em; }
.md-tabs { display: flex; gap: 6px; margin: 4px 0 14px; }
.md-filters { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.md-filters-r { display: flex; gap: 8px; align-items: center; }
.md-floor { width: auto; }
.md-search { width: 220px; max-width: 100%; }
.md-inline { display: flex; align-items: center; gap: 8px; margin: 0; }
.md-inline select { width: auto; }
.md-bulk { margin-bottom: 14px; }
.md-loading { color: var(--text-muted); font-size: 13px; }
.md-more { display: flex; justify-content: center; margin: 8px 0 24px; }

.md-mhead { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.md-mlink { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; font-size: 14.5px;
  color: var(--lc-ink); cursor: pointer; text-align: left; }
.md-mlink:hover { text-decoration: underline; }
.md-mmeta { font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--text-muted); }
.md-mcount { margin-left: auto; font-size: 12px; color: var(--text-muted); }

.md-row { display: flex; gap: 10px; padding: 10px 0; border-top: 1px solid var(--border, rgba(21,26,36,.1)); }
.md-row--sel { background: rgba(252,238,33,.12); }
.md-check { padding-top: 2px; }
.md-body { flex: 1; min-width: 0; }
.md-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.md-kind { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  padding: 2px 7px; border-radius: 4px; background: rgba(21,26,36,.07); color: var(--lc-ink); }
.md-kind--title { background: rgba(231,29,37,.10); color: var(--lc-red, #E71D25); }
.md-kind--event { background: rgba(40,90,200,.10); color: #24509e; }
.md-kind--status { background: rgba(252,238,33,.35); }
.md-kind--person { background: rgba(35,140,70,.12); color: #1c6b39; }
.md-kind--document { background: rgba(110,60,170,.10); color: #5b2d91; }
.md-kind--agency { background: rgba(20,120,130,.11); color: #0f5f66; }
/* Agency merge (0148): the two records side by side; the one that stays is outlined. */
.md-agpair { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin: 4px 0 6px; }
.md-agcard { border: 1px solid var(--border-hair); border-radius: 8px; padding: 8px 10px; background: var(--surface-card); }
.md-agcard--keep { border-color: #0f5f66; box-shadow: inset 3px 0 0 #0f5f66; }
.md-agcard-h { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 2px; }
.md-agcard--keep .md-agcard-h { color: #0f5f66; }
.md-keep { display: flex; align-items: center; gap: 6px; font-size: 13px; margin: 4px 0; cursor: pointer; }
.md-mlink--plain { cursor: default; }
.md-mlink--plain:hover { text-decoration: none; }
.md-sub { font-size: 11.5px; color: var(--text-muted); }
.md-sum { font-size: 13.5px; font-weight: 600; min-width: 0; word-break: break-word; }
.md-top .tr-meta { margin-left: auto; }
.md-ev { margin-top: 6px; font-size: 12.5px; line-height: 1.5; color: var(--text-muted); word-break: break-word; }
.md-evlabel { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-right: 4px; }
.md-split { margin-top: 4px; }
.md-quote { font-style: italic; }
.md-src { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; font-size: 12px; }
.md-staleok { display: flex; align-items: center; gap: 6px; margin-top: 6px; color: var(--lc-ink); }
.md-edit { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; max-width: 640px; }
.md-edit--grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.md-edit--grid .field-label, .md-edit .field-label { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.md-existing { font-size: 12px; color: var(--text-muted); }
.md-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 8px; flex-wrap: wrap; }
.md-actions .lc-input { max-width: 320px; }

.md-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.md-table th { text-align: left; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted);
  padding: 6px 8px; border-bottom: 1px solid var(--border, rgba(21,26,36,.12)); }
.md-table td { padding: 8px; vertical-align: top; border-bottom: 1px solid var(--border, rgba(21,26,36,.08)); }
.md-nowrap { white-space: nowrap; }
.md-edited { margin-left: 6px; font-size: 11px; font-weight: 600; color: #24509e; }
.md-note { margin-top: 3px; font-size: 12px; color: var(--text-muted); }
.md-dec { font-size: 11.5px; font-weight: 700; }
.md-dec--approved { color: #1c6b39; }
.md-dec--rejected { color: var(--lc-red, #E71D25); }
@media (max-width: 700px) {
  .md-stats { display: none; }
  .md-table thead { display: none; }
  .md-table td { display: block; border: 0; padding: 2px 0; }
  .md-table tr { display: block; padding: 8px 0; border-bottom: 1px solid var(--border, rgba(21,26,36,.1)); }
}
/* Per-matter select + actions (group select, 2026-09-25) */
.md-gcheck { padding-top: 0; }
.md-gact { margin-left: auto; display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.md-gsel { font-size: 12px; color: var(--lc-ink); font-variant-numeric: tabular-nums; }
.md-glook { color: var(--lc-red, #E71D25); }

/* ---- Advisory holds (Editorial E3a, HoldBanner.jsx) ---------------------------- */
.hold-banners { display: flex; flex-direction: column; gap: 8px; margin: 0 0 14px; }
.hold-banner { display: flex; gap: 10px; align-items: flex-start; padding: 10px 14px; border-radius: 8px;
  background: #FCEEBE; color: #5c4400; border: 1px solid #ecd27a; font-size: 13px; line-height: 1.45; }
.hold-banner.own { background: #E7E5DF; color: #3f3f3a; border-color: #d3d0c7; }
.hold-banner .ic-wrap svg { width: 16px; height: 16px; margin-top: 2px; }
.hold-banner__body { min-width: 0; flex: 1; }
.hold-banner__label { color: inherit; opacity: .85; }
.hold-banner__sub { font-size: 12px; opacity: .85; }
.hold-banner__meta { display: flex; flex-direction: column; gap: 2px; margin-top: 4px; font-size: 12px; opacity: .8; }
.hold-banner__path { font-family: var(--font-mono, ui-monospace, monospace); overflow-wrap: anywhere; }
.hold-banner__reason { white-space: pre-line; overflow-wrap: anywhere; }

/* ---- "Used in" on the asset request page (Editorial E3b, UsedIn.jsx) ------------- */
.used-in { margin: 0 0 14px; padding: 10px 14px; border-radius: 8px; border: 1px solid var(--border, rgba(21,26,36,.12));
  background: var(--surface, #fff); font-size: 13px; }
.used-in__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.used-in__head .ic-wrap svg { width: 16px; height: 16px; }
.used-in__sum { color: var(--lc-ink-soft, #5b5b55); }
.used-in__list { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.used-in__list li { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.used-in__show { font-weight: 600; }
.used-in__title { min-width: 0; overflow-wrap: anywhere; }
.used-in__date, .used-in__via { color: var(--lc-ink-soft, #5b5b55); font-size: 12px; }

/* ---- Asset Requests calendar (Content Ops Phase 1, RequestCalendar.jsx) ------
   Reuses the Trial Calendar's nav bar (.cal-bar etc., CalendarKit). Cards are
   single-day, so cells are stacked lists, not lane-packed bars. */
.fcal-ico { display: inline-flex; align-items: center; }
.fcal-ico svg, .fcal-ico i { width: 14px; height: 14px; }
.fcal-muted { color: var(--text-muted); font-weight: 400; }
.fcal-owners { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.fcal-owner { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border: 1px solid var(--border-hair); border-radius: 15px; background: var(--lc-paper); font-size: 12.5px; font-weight: 600; color: var(--text-body); cursor: pointer; }
.fcal-owner:hover { background: var(--lc-paper-2); }
.fcal-owner.is-on { background: var(--lc-ink); border-color: var(--lc-ink); color: #fff; }
.fcal-swatch { display: inline-block; width: 9px; height: 9px; border-radius: 5px; }
.fcal-notice { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: #15803d; background: rgba(21,128,61,.08); border-radius: 8px; padding: 7px 12px; margin-bottom: 10px; }

.fcal-overdue { border: 1px solid rgba(190,18,60,.28); background: rgba(190,18,60,.04); border-radius: 10px; padding: 10px 12px; margin-bottom: 16px; }
.fcal-overdue-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13px; color: #9f1239; margin-bottom: 8px; }
.fcal-overdue-head > span:first-child { display: inline-flex; align-items: center; gap: 6px; }
.fcal-overdue-acts { display: inline-flex; gap: 14px; }
.fcal-strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; }

.fcal-body { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 16px; align-items: start; }
@media (max-width: 1100px) { .fcal-body { grid-template-columns: 1fr; } }
.fcal-weekrow { display: grid; }
.fcal-cell { min-height: 96px; border-top: 1px solid var(--border-hair); border-right: 1px solid var(--border-hair); padding: 4px 5px 6px; background: var(--lc-paper); min-width: 0; }
.fcal-weekrow .fcal-cell:last-child { border-right: none; }
.fcal-cell--today { box-shadow: inset 0 0 0 2px var(--lc-ink); }
.fcal-grid--week .fcal-cell { min-height: 360px; }
.fcal-grid--week .fcal-cell-list { max-height: 62vh; overflow-y: auto; }
.fcal-daynum { display: flex; align-items: center; gap: 4px; width: 100%; border: none; background: none; padding: 2px 2px 4px; font-size: 12px; font-weight: 700; color: var(--lc-ink); cursor: pointer; text-align: left; }
.fcal-daynum:hover { color: var(--text-link); }
.fcal-count { margin-left: auto; font-size: 10.5px; font-weight: 700; background: var(--lc-slate-100); color: var(--lc-slate-700); border-radius: 8px; padding: 0 6px; line-height: 16px; }
.fcal-cell-list { display: flex; flex-direction: column; gap: 4px; }
.fcal-more { border: none; background: none; font-size: 11px; font-weight: 700; color: var(--text-link); cursor: pointer; text-align: left; padding: 0 2px; }
.fcal-wknd { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--text-muted); margin-bottom: -2px; }

.fcal-card { position: relative; border: 1px solid var(--border-hair); border-left: 3px solid var(--who, var(--lc-slate-300)); border-radius: 6px; background: #fff; padding: 5px 7px; cursor: pointer; min-width: 0; }
.fcal-card:hover { border-color: var(--lc-slate-300); border-left-color: var(--who, var(--lc-slate-500)); box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.fcal-card.is-busy { opacity: .5; }
.fcal-card-top { display: flex; align-items: center; gap: 5px; min-width: 0; }
.fcal-id { font-size: 11px; font-weight: 700; color: var(--lc-ink); white-space: nowrap; }
.fcal-chased { font-size: 10.5px; font-weight: 700; color: var(--lc-slate-700); }
.fcal-card-title { font-size: 12px; color: var(--text-body); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 1px; }
.fcal-card-sub { display: flex; flex-wrap: wrap; gap: 2px 8px; font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.fcal-card-sub .overdue { color: #be123c; font-weight: 700; }
.fcal-who { font-weight: 600; color: var(--text-body); }
.fcal-card--compact { padding: 3px 6px; }
.fcal-card--compact .fcal-card-title { font-size: 11px; }

.fcal-redate { margin-left: auto; position: relative; flex: none; }
.fcal-redate-btn { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border: 1px solid transparent; border-radius: 5px; background: none; color: var(--text-muted); cursor: pointer; padding: 0; }
.fcal-redate-btn:hover { border-color: var(--border-hair); background: var(--lc-paper-2); color: var(--lc-ink); }
.fcal-redate-menu { position: fixed; z-index: 60; width: 196px; background: #fff; border: 1px solid var(--border-hair); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,.14); padding: 4px; }
.fcal-redate-head { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); padding: 5px 8px 3px; }
.fcal-redate-menu > button { display: flex; justify-content: space-between; width: 100%; border: none; background: none; padding: 6px 8px; border-radius: 5px; font-size: 12.5px; cursor: pointer; color: var(--lc-ink); }
.fcal-redate-menu > button:hover { background: var(--lc-paper-2); }
.fcal-redate-menu > button span { color: var(--text-muted); font-size: 12px; }
.fcal-redate-custom { display: flex; gap: 4px; padding: 6px 4px 3px; border-top: 1px solid var(--border-hair); margin-top: 4px; }
.fcal-redate-custom input { flex: 1; min-width: 0; font-size: 12px; padding: 3px 5px; border: 1px solid var(--border-hair); border-radius: 5px; }
.fcal-redate-custom button { font-size: 12px; font-weight: 700; border: none; border-radius: 5px; background: var(--lc-ink); color: #fff; padding: 0 9px; cursor: pointer; }
.fcal-redate-custom button:disabled { opacity: .4; cursor: default; }

.fcal-dayview .fcal-daylist { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 8px; }
.fcal-tray { border: 1px solid var(--border-hair); border-radius: 10px; background: var(--lc-paper-2); padding: 10px; position: sticky; top: 12px; }
.fcal-tray-head { display: flex; align-items: center; justify-content: space-between; font-size: 12.5px; font-weight: 700; color: var(--lc-ink); margin-bottom: 8px; }
.fcal-tray-head > span:first-child { display: inline-flex; align-items: center; gap: 6px; }
.fcal-tray-list { display: flex; flex-direction: column; gap: 6px; max-height: 70vh; overflow-y: auto; margin-bottom: 8px; }
.fcal-cell-list { overflow-x: hidden; }
.fcal-card-top .chip { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 0 1 auto; }
.fcal-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
@media (max-width: 700px) { .fcal-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fcal-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 14px; border: 1px solid var(--border-hair); border-radius: 10px; background: #fff; cursor: pointer; text-align: left; }
.fcal-tile:hover { border-color: var(--lc-slate-300); box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.fcal-tile-n { font-family: var(--font-display); font-size: 28px; line-height: 1; color: var(--lc-ink); }
.fcal-tile-l { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.fcal-tile--bad .fcal-tile-n { color: #be123c; }
.fcal .page-head { flex-wrap: wrap; align-items: flex-start; }

/* Freelancers Phase 2 (0139): preferred, tags, state groups, bookings, lists */
.fl-star { color: var(--lc-red, #E71D25); }
.fl-tagrow { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.fl-tag { display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 999px;
  background: var(--lc-paper-2); color: var(--lc-ink); border: 1px solid var(--border-hair); }
.fl-ev { font-weight: 400; color: var(--text-muted); }
.fl-tagfilter { margin-top: -6px; }
.fl-viewsw { display: inline-flex; gap: 4px; margin-right: 6px; }
.fl-group-tools { display: flex; gap: 12px; align-items: center; margin-bottom: 8px; }
.fl-group { margin-bottom: 8px; }
.fl-group-head { display: flex; align-items: baseline; gap: 10px; width: 100%; text-align: left; padding: 9px 12px;
  border: 1px solid var(--border-hair); border-radius: 10px; background: var(--lc-paper); cursor: pointer; font: inherit; }
.fl-group-head:hover { background: var(--lc-paper-2); }
.fl-group-head--open { border-bottom-left-radius: 0; border-bottom-right-radius: 0; margin-bottom: 0; }
.fl-chev { display: inline-block; width: 12px; color: var(--text-muted); transition: transform .12s; }
.fl-group-head--open .fl-chev { transform: rotate(90deg); }
.fl-group-name { font-weight: 700; color: var(--lc-ink); }
.fl-group-n { font-size: 12px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.fl-subhead td { background: var(--lc-paper-2); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: var(--text-muted); padding-top: 6px; padding-bottom: 6px; }
.fl-subhead .link-btn { text-transform: none; letter-spacing: 0; font-size: 12px; }
.fl-typical { margin-top: 6px; font-size: 13px; }
.fl-typ { margin-right: 10px; font-weight: 600; color: var(--lc-ink); }
.fl-tagedit { margin: 6px 0 8px; }
.fl-bookform { padding: 10px 0 14px; border-bottom: 1px solid var(--border-hair); margin-bottom: 8px; }
.fl-pick { display: block; width: 100%; text-align: left; padding: 6px 8px; border: 0; border-bottom: 1px solid var(--border-hair);
  background: none; cursor: pointer; font: inherit; font-size: 13px; }
.fl-pick:hover { background: var(--lc-paper-2); }
.fl-picked { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; font-size: 13px; }
.fl-bk-date { font-variant-numeric: tabular-nums; color: var(--text-muted); }
.fl-bk-x { margin-left: 8px; font-size: 12px; }
.fl-cancelled { opacity: .55; }
.fl-cancelled .fl-bk-date, .fl-cancelled b { text-decoration: line-through; }
.fl-cancel-form { display: inline-flex; gap: 6px; align-items: center; margin-left: 8px; }
.fl-cancel-form .lc-input { width: 180px; padding: 3px 6px; }
.fl-addtag.dt-add { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; }
@media (max-width: 640px) { .fl-addtag.dt-add { grid-template-columns: 1fr; } }
.fl-addtag { display: grid; grid-template-columns: minmax(0, 1fr) 150px minmax(0, 1.4fr) auto; gap: 8px; align-items: center; margin-top: 8px; }
@media (max-width: 760px) { .fl-addtag { grid-template-columns: 1fr; } .fl-group-head { flex-wrap: wrap; } }
.fl-group .fl-table { table-layout: fixed; width: 100%; }
.fl-group .fl-table th:nth-child(1) { width: 26%; }
.fl-group .fl-table th:nth-child(2) { width: 15%; }
.fl-group .fl-table th:nth-child(3) { width: 15%; }
.fl-group .fl-table th:nth-child(4) { width: 11%; }
.fl-group .fl-table th:nth-child(5) { width: 13%; }
.fl-group .fl-table th:nth-child(6) { width: 9%; }
.fl-group .fl-table th:nth-child(7) { width: 11%; }
.fl-group .fl-table td { overflow-wrap: anywhere; }

/* ---- Documents panel (Attachments.jsx, ledger-attachments-v1 A1) ---- */
.att { position: relative; }
.att--drag { outline: 2px dashed var(--lc-navy, #151a24); outline-offset: 4px; border-radius: 8px; }
.att-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.att-head__l { display: flex; align-items: center; gap: 8px; font-size: 15px; }
.att-head__l .ic-wrap svg { width: 17px; height: 17px; }
.att-head__r { display: flex; gap: 8px; flex-wrap: wrap; }
.att-count { background: var(--lc-paper-2, #f1efe9); border-radius: 20px; padding: 1px 9px; font-size: 12px; font-weight: 700; }
.att-msg { margin: 0 0 12px; }
.att-link { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 0 0 12px; }
.att-link .lc-input { flex: 1 1 320px; min-width: 0; }
.att-hint { font-size: 12px; color: var(--text-muted, #6b6b66); }
.att-bulk { max-width: 360px; margin: 0 0 10px; }
.att-up { border: 1px solid var(--border-hair, rgba(21,26,36,.14)); border-radius: 8px; padding: 12px 14px; margin: 0 0 12px; background: #fff; }
.att-up--err { border-color: var(--lc-red, #E71D25); }
.att-up__head { display: flex; align-items: center; gap: 8px; min-width: 0; flex-wrap: wrap; }
.att-up__head .ic-wrap svg { width: 16px; height: 16px; }
.att-up__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1 1 200px; }
.att-up__size, .att-up__status { font-size: 12px; color: var(--text-muted, #6b6b66); white-space: nowrap; }
.att-err { color: var(--lc-red-deep, #a3141a); white-space: normal; }
.att-bar { height: 4px; background: var(--lc-paper-2, #f1efe9); border-radius: 4px; overflow: hidden; margin: 8px 0; }
.att-bar span { display: block; height: 100%; background: var(--lc-navy, #151a24); transition: width .2s; }
.att-up__ai { font-size: 12px; color: #1d4e89; display: flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.att-up__ai .ic-wrap svg { width: 13px; height: 13px; }
.att-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px 14px; }
.att-f--title, .att-f--full { grid-column: 1 / -1; }
.att-f--ai .lc-input { border-color: #6f9bd1; background: #f2f7fd; }
.att-up__actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 12px; }
.att-empty { padding: 18px; text-align: center; color: var(--text-muted, #6b6b66); font-size: 13px; }
.att-drop { border: 1px dashed var(--border-hair, rgba(21,26,36,.25)); border-radius: 8px; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; }
.att-drop .ic-wrap svg { width: 16px; height: 16px; }
.att-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.att-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted, #6b6b66); padding: 6px 8px; border-bottom: 1px solid var(--border-hair, rgba(21,26,36,.14)); }
.att-table td { padding: 9px 8px; border-bottom: 1px solid var(--border-hair, rgba(21,26,36,.08)); vertical-align: top; }
.att-type { display: inline-block; background: var(--lc-paper-2, #f1efe9); border-radius: 4px; padding: 2px 7px; font-size: 11.5px; font-weight: 700; }
.att-title { font-weight: 600; color: var(--text-link, #1d4e89); text-decoration: none; display: inline-flex; align-items: center; gap: 4px; }
.att-title:hover { text-decoration: underline; }
.att-title .ic-wrap svg { width: 12px; height: 12px; }
.att-sub { font-size: 12px; color: var(--text-muted, #6b6b66); }
.att-nowrap { white-space: nowrap; }
.att-acts { white-space: nowrap; text-align: right; }
.att-iconbtn { background: none; border: none; padding: 4px; cursor: pointer; color: var(--text-muted, #6b6b66); border-radius: 4px; }
.att-iconbtn:hover { color: var(--lc-ink, #151a24); background: var(--lc-paper-2, #f1efe9); }
.att-iconbtn svg { width: 15px; height: 15px; }
.att-foot { font-size: 11.5px; color: var(--text-muted, #6b6b66); margin-top: 8px; }
@media (max-width: 640px) {
  .att-table thead { display: none; }
  .att-table, .att-table tbody, .att-table tr, .att-table td { display: block; width: 100%; }
  .att-table tr { border-bottom: 1px solid var(--border-hair, rgba(21,26,36,.14)); padding: 6px 0; }
  .att-table td { border: none; padding: 3px 0; }
  .att-acts { text-align: left; }
}

/* ---- Google group sync on Access (GroupSync.jsx, 0143) ---- */
.gs-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.gs-sub { font-size: 12px; color: var(--text-muted, #6b6b66); max-width: 640px; }
.gs-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.gs-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted, #6b6b66); padding: 6px 8px; border-bottom: 1px solid var(--border-hair, rgba(21,26,36,.14)); }
.gs-table td { padding: 8px; border-bottom: 1px solid var(--border-hair, rgba(21,26,36,.08)); vertical-align: top; word-break: break-word; }
.gs-nowrap { white-space: nowrap; }
.gs-dry { display: inline-block; white-space: nowrap; margin: 4px 0 0 0; font-size: 10.5px; font-weight: 700; background: #e3ecf7; color: #1d4e89; border-radius: 10px; padding: 1px 7px; }
.gs-err { color: var(--lc-red-deep, #a3141a); }
@media (max-width: 640px) { .gs-table thead { display: none; } .gs-table, .gs-table tbody, .gs-table tr, .gs-table td { display: block; width: 100%; } .gs-table tr { border-bottom: 1px solid var(--border-hair, rgba(21,26,36,.14)); } .gs-table td { border: none; padding: 3px 0; } }

/* Attachments A2: a booking's quote / invoice panel opens under its row */
.fl-bk-docs { margin: 8px 0 4px; padding: 10px 12px; border: 1px solid var(--border-hair); border-radius: 8px; background: var(--surface-1, #fff); }

/* Attachments A4: Search → Documents tab (browse) */
.doc-filters .lc-field { min-width: 180px; }
.doc-date { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-muted); }
.doc-date .lc-input { width: 150px; }
.doc-table td { vertical-align: top; }
.doc-main { min-width: 280px; }
.doc-when { white-space: nowrap; }
.doc-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.doc-restr { margin-top: 4px; font-size: 11px; color: var(--text-muted); display: inline-flex; align-items: center; gap: 3px; }
.doc-restr svg { width: 11px; height: 11px; }
.doc-links { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; max-width: 320px; }
.doc-link { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--lc-slate-700); background: none; border: 0; padding: 0; text-align: left; font-family: inherit; line-height: 1.35; }
.doc-link svg { width: 13px; height: 13px; flex: none; color: var(--lc-slate-500); }
.doc-link--go { color: var(--text-link, #1d4e89); cursor: pointer; }
.doc-link--go:hover { text-decoration: underline; }
@media (max-width: 640px) {
  .doc-table thead { display: none; }
  .doc-table, .doc-table tbody, .doc-table tr, .doc-table td { display: block; width: 100%; }
  .doc-table tr { border-bottom: 1px solid var(--border-hair); padding: 8px 0; }
  .doc-table td { border: none; padding: 3px 12px; text-align: left; }
  .doc-main { min-width: 0; }
}

/* Metadata desk: confidence bands (2026-10-12) */
.md-conf { margin-bottom: 10px; }

.srch-docs { margin-top: 10px; font-size: 12.5px; }
.srch-docnote { margin: -6px 0 12px; }
.srch-docnote .link-btn { font-size: 12.5px; }

/* Agencies by place (G2, AgencyPlaces.jsx) */
.pl-states { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.pl-tile { display: flex; flex-direction: column; gap: 3px; text-align: left; padding: 12px 14px; border: 1px solid var(--border-hair); border-radius: 10px; background: var(--lc-paper); cursor: pointer; font: inherit; color: inherit; }
.pl-tile:hover { border-color: var(--lc-navy); background: var(--lc-paper-2); }
.pl-tilecode { font-family: var(--font-display); font-size: 11px; font-weight: 700; letter-spacing: .1em; color: var(--text-muted); }
.pl-tilename { font-size: 15px; font-weight: 700; color: var(--lc-ink); }
.pl-tilemeta { font-size: 11.5px; color: var(--text-muted); }
.pl-crumbs { font-size: 12.5px; color: var(--text-muted); margin-bottom: 4px; display: flex; align-items: center; gap: 6px; }
.pl-crumbs .link-btn { font-size: 12.5px; }
.pl-title { font-family: var(--font-display); font-size: 22px; font-weight: 800; color: var(--lc-ink); margin: 0 0 16px; }
.pl-two { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 14px; margin-bottom: 22px; }
@media (max-width: 860px) { .pl-two { grid-template-columns: minmax(0, 1fr); } }
.pl-sec { margin-bottom: 22px; }
.pl-res { display: flex; flex-direction: column; gap: 8px; }
.pl-resrow { display: flex; align-items: flex-start; gap: 9px; font-size: 13px; }
.pl-resrow svg { width: 15px; height: 15px; color: var(--lc-navy); margin-top: 2px; flex: none; }
.pl-resrow--inh { opacity: .85; }
.pl-resmain { display: flex; flex-direction: column; gap: 1px; min-width: 0; flex: 1; }
.pl-resmain a { color: var(--text-link); font-weight: 700; text-decoration: none; overflow-wrap: break-word; }
.pl-resmain a:hover { text-decoration: underline; }
.pl-reskind { font-size: 11.5px; color: var(--text-muted); }
.pl-resnote { font-size: 11.5px; color: var(--lc-slate-700); }
.pl-resact { display: inline-flex; gap: 10px; flex: none; }
.pl-add { margin-top: 4px; font-size: 12px; }
.pl-add svg { width: 13px; height: 13px; }
.pl-empty { font-size: 12.5px; color: var(--text-muted); }
.pl-form { border: 1px solid var(--border-hair); border-radius: 8px; padding: 12px; background: var(--lc-paper-2); }
.pl-check { display: flex; align-items: center; gap: 7px; font-size: 13px; margin-bottom: 10px; }
.pl-rule { display: flex; flex-direction: column; gap: 8px; }
.pl-rulehead { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pl-rulenotes { font-size: 12.5px; color: var(--lc-slate-700); line-height: 1.45; white-space: pre-wrap; }
.chip.pl-chip--warn { background: rgba(185,28,28,.10); color: #9b1c1c; }
.pl-card .ag-name { margin-bottom: 4px; }
.pl-counts { margin-top: 8px; font-size: 11px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.pl-unplaced { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text-muted); margin-top: 6px; }
.pl-unplaced svg { width: 14px; height: 14px; }

/* ---- Agencies G3 (0150): contacts by role, how they work, duplicate warning ---- */
.ag-detail-two { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 18px; }
@media (max-width: 900px) { .ag-detail-two { grid-template-columns: 1fr; } }
.ag-people { display: flex; flex-direction: column; gap: 10px; }
.ag-person { display: flex; align-items: flex-start; gap: 10px; padding: 9px 10px; border: 1px solid var(--border-hair); border-radius: 8px; background: var(--surface-card); }
.ag-person--primary { border-color: #2f6fbf; box-shadow: inset 3px 0 0 #2f6fbf; }
.ag-person-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.ag-person-name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; font-size: 13px; }
.ag-person-title { font-size: 12px; color: var(--text-muted); }
.ag-inbox { color: var(--lc-slate-700); font-weight: 600; }
.ag-primary { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #2f6fbf; }
.ag-contact--row { flex-direction: row; flex-wrap: wrap; gap: 4px 14px; }
.ag-contact--row span { overflow-wrap: anywhere; }
.ag-person-note { font-size: 12px; color: var(--lc-slate-700); line-height: 1.4; white-space: pre-wrap; overflow-wrap: anywhere; }
.ag-checked { color: #0f7a57; font-weight: 600; }
.pl-resact .ag-checked { font-size: 11px; display: inline-flex; align-items: center; gap: 4px; }
.ag-checked svg { width: 12px; height: 12px; }
.ag-person-meta { font-size: 11px; color: var(--text-muted); }
.ag-person .pl-resact { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; flex: none; }
.chip.ag-role { flex: none; min-width: 74px; justify-content: center; }
.chip.ag-role--pio { background: rgba(46,107,184,.12); color: #245a9c; }
.chip.ag-role--court_administrator { background: rgba(15,95,102,.12); color: #0f5f66; }
.chip.ag-role--records_coordinator { background: rgba(88,62,150,.12); color: #4e3790; }
.chip.ag-role--clerk, .chip.ag-role--trial_coordinator { background: rgba(15,95,102,.08); color: #0f5f66; }
.ag-rolemini { display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #245a9c; margin-right: 6px; }
.chip.ag-rolemini { margin-right: 4px; }
.ag-alikes { margin-top: 12px; padding: 10px 12px; font-size: 12.5px; line-height: 1.5; color: var(--lc-slate-700); background: rgba(185,28,28,.05); border: 1px solid rgba(185,28,28,.25); border-radius: 8px; }
.ag-alikes > .ic-wrap svg { width: 14px; height: 14px; vertical-align: -2px; color: #9b1c1c; }
.ag-alikes ul { margin: 6px 0 6px 18px; padding: 0; }
.md-notes { margin-top: 6px; font-size: 12px; }
.md-notes summary { cursor: pointer; color: #2e6bb8; }
.md-notes .ag-notes { max-height: 220px; overflow: auto; }

/* ---- Courthouses (G4, 0151). Content Ops only. ---------------------------- */
.ch-only { margin-left: 8px; font-size: 10.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
           color: var(--text-muted); border: 1px solid var(--border, var(--lc-slate-200)); border-radius: 4px; padding: 1px 6px; }
.ch-card .ag-namelink { display: inline-flex; align-items: center; gap: 6px; }
.ch-card .ic-wrap svg { width: 15px; height: 15px; }
.ch-sub { font-size: 13px; color: var(--text-muted); margin-top: 4px; }
.ch-owner { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 12.5px; color: var(--text-muted); margin: -6px 0 18px; }
.ch-owner .ic-wrap svg { width: 14px; height: 14px; vertical-align: -2px; }
.ch-row { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--border, var(--lc-slate-100)); font-size: 13.5px; }
.ch-row:last-child { border-bottom: 0; }
.ch-rowlabel { color: var(--text-muted); display: inline-flex; align-items: center; gap: 6px; }
.ch-rowlabel svg { width: 14px; height: 14px; }
.ch-rowval { white-space: pre-wrap; }
.ch-area { min-height: 64px; }
.ch-past { margin-top: 6px; }
.ch-past summary { cursor: pointer; font-size: 13px; color: var(--text-muted); margin-bottom: 10px; }
@media (max-width: 600px) { .ch-row { grid-template-columns: 1fr; gap: 2px; } }
