:root {
  --fw-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fw-ink: #16243e;
  --fw-muted: #526279;
  --fw-action: #1854a6;
  --fw-action-hover: #103e80;
  --fw-line: #d8e1ec;
  --fw-control-border: #8292a7;
  --fw-page: #f3f6fa;
  --fw-surface: #ffffff;
  --fw-selected: #edf3fc;
  --fw-warning: #74450e;
  --fw-warning-bg: #fff4dd;
  --fw-warning-line: #ead6ad;
  --fw-danger: #9b2635;
  --fw-danger-bg: #fff1f2;
  --fw-status-neutral: var(--fw-muted);
  --fw-status-active: var(--fw-action);
  --fw-status-warning: var(--fw-warning);
  --fw-status-error: var(--fw-danger);

  --fw-text-meta: .875rem;       /* 14 / 20 */
  --fw-leading-meta: 1.25rem;
  --fw-text-control: .9375rem;   /* 15 / 22 */
  --fw-leading-control: 1.375rem;
  --fw-text-body: 1rem;          /* 16 / 24 */
  --fw-leading-body: 1.5rem;
  --fw-text-reading: 1.0625rem;  /* 17 / 28 */
  --fw-leading-reading: 1.75rem;
  --fw-text-section: 1.125rem;   /* prose 18 / 26 */
  --fw-leading-section: 1.625rem;
  --fw-text-page: 1.375rem;      /* page h2 22 / 28 */
  --fw-leading-page: 1.75rem;
  --fw-text-matter: 1.5rem;     /* matter h1 24 / 30 */
  --fw-leading-matter: 1.875rem;

  --fw-space-1: .25rem;  /* 4 */
  --fw-space-2: .5rem;   /* 8 */
  --fw-space-3: .75rem;  /* 12 */
  --fw-space-4: 1rem;    /* 16 */
  --fw-space-6: 1.5rem;  /* 24 */
  --fw-space-8: 2rem;    /* 32 */
  --fw-space-12: 3rem;   /* 48 */
  --fw-radius-tag: .25rem;
  --fw-radius-control: .375rem;
  --fw-radius-surface: .5rem;
  --fw-target: max(44px, 2.75rem); /* never below 44px */
  --fw-reading-width: 44rem;
  --fw-page-reading-width: 48rem;
  --fw-motion-activity: 1.4s;

  /* Preserve existing surfaces while sharing the kit palette and focus color. */
  --ink: var(--fw-ink); --muted: var(--fw-muted); --action: var(--fw-action); --line: var(--fw-line);
  --page: var(--fw-page); --soft: var(--fw-selected); --control-border: var(--fw-control-border);
  font: 1rem/1.5 var(--fw-font);
  color: var(--ink); background: var(--page)
}
* { box-sizing: border-box }
body { margin: 0 }
body.access-masked #app { visibility: hidden }
.access-gate { display: none }
body.access-masked .access-gate { display: flex; position: fixed; inset: 0; z-index: 100; background: #fff; align-items: center; justify-content: center; flex-direction: column; padding: 1rem; text-align: center }
button, input, select, textarea { font: inherit }
button, .nav-link, .back-link, .fw-button, .fw-action-link { font-size: var(--fw-text-control); line-height: var(--fw-leading-control) }
button, .fw-button { cursor: pointer; min-height: 44px; padding: .5rem .75rem; background: #fff; border: 1px solid var(--control-border); border-radius: 6px; color: var(--action) }
button:hover, .fw-button:hover { background: var(--soft) }
button:disabled, .fw-button:disabled { color: var(--muted); cursor: default; background: var(--page) }
:where(button, a, input, select, textarea, summary, main):focus-visible, h2:focus, #source-results-heading:focus { outline: 3px solid var(--action); outline-offset: 2px; box-shadow: 0 0 0 2px #fff }
input, select, textarea { min-height: 44px; max-width: 100%; padding: .5rem; border: 1px solid var(--control-border); border-radius: 6px; background: #fff; color: var(--ink); font-size: 1rem; line-height: 1.5rem }
textarea { width: 100%; min-height: 6rem; max-height: 35dvh; resize: vertical; overflow-y: auto }
label { display: block; margin: .5rem 0 }
label input:not([type=checkbox]), label select { display: block; width: 100% }
input[type=checkbox] { min-height: 24px; min-width: 24px; vertical-align: middle }
h1, h2, h3 { margin: 0 0 1rem; overflow-wrap: anywhere }
h1 { font-size: 1.75rem; line-height: 2.125rem; font-weight: 700 }
h2 { font-size: 1.375rem; line-height: 1.75rem; font-weight: 600 }
h3 { font-size: 1rem; line-height: 1.5rem; font-weight: 600 }
a { color: var(--action); text-underline-offset: .18rem }
small, .muted { font-size: .875rem; line-height: 1.25rem; color: var(--muted) }
.shell { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); align-items: start; min-height: 100dvh }
.site-header { grid-column: 1 / -1; min-width: 0; border-bottom: 1px solid var(--line); background: #fff }
.global-band, .destination-band { display: flex; align-items: stretch; min-width: 0; padding: 0 1.5rem }
.global-band { border-bottom: 1px solid var(--line); align-items: center; gap: .75rem; background: var(--page) }
.wordmark { font-size: .9375rem; font-weight: 700; margin-right: auto }
.account { position: relative; margin: 0 }
.account > summary { list-style: none; display: flex; align-items: center; cursor: pointer; min-height: 44px; padding: .5rem .75rem; color: var(--action); font-size: .9375rem; line-height: 1.375rem; border-radius: 6px }
.account > summary::-webkit-details-marker { display: none }
.account > summary::after { content: ' ▾'; margin-left: .5rem }
.account > summary:hover { background: var(--soft) }
.account-settings { position: absolute; z-index: 12; right: 0; top: 100%; width: min(21rem, calc(100vw - 2rem)); padding: 1rem; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 4px 12px #16243e18 }
.account-settings button, .account-settings a { display: block; width: 100%; text-align: left }
.locale-control { margin: 0 0 .75rem; font-size: .9375rem }
.locale-control small { display: block; margin-top: .25rem }
.matter-heading { display: flex; align-items: baseline; flex-wrap: wrap; column-gap: .75rem; padding: .5rem 1.5rem .25rem; min-width: 0 }
.matter-heading h1 { margin: 0; font-size: 1.5rem; line-height: 1.875rem; overflow-wrap: anywhere }
.matter-heading .matter-identity { font-size: .875rem; line-height: 1.25rem; color: var(--muted); overflow-wrap: anywhere; min-width: 0 }
.matter-heading .nav-link { margin-left: auto; padding: .4rem .6rem }
.destination-band { gap: .25rem }
.nav-link { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem .75rem; text-decoration: none; overflow-wrap: anywhere; color: var(--action); border-radius: 6px }
.nav-link:hover { background: var(--soft) }
.nav-link.selected, .list .nav-link.selected { background: var(--soft); font-weight: 600 }
.destination-band .nav-link { border-bottom: 3px solid transparent; border-radius: 0; color: var(--muted) }
.destination-band .nav-link.selected { border-bottom-color: var(--action); color: var(--action) }
.skip-link { position: absolute; z-index: 30; left: 1rem; top: -10rem; background: #fff; padding: .5rem; min-height: 44px }
.skip-link:focus { top: .5rem }
.center { min-width: 0; width: 100%; padding: 1rem 1.5rem 3rem }
#workspace { min-width: 0 }
.shell:has(#workspace > .reading) { background: #fff }
#workspace .reading { max-width: 704px; margin: 0 auto }
.back-link { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem .75rem }
.thread-heading { display: flex; flex-wrap: wrap; gap: var(--fw-space-2) var(--fw-space-4); align-items: center; margin-bottom: .5rem }
.thread-identity { order: -1; flex: 1 1 max-content; min-width: 0; max-width: 100% }
.thread-title { order: -2; flex: 0 0 100%; margin: 0; min-width: 0 }
.thread-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--fw-space-2); max-width: 100%; margin-left: auto }
.thread-actions button { min-width: 0; max-width: 100%; overflow-wrap: anywhere }
.thread-actions [data-control=conversationToggle] { padding-inline: .5rem; gap: .375rem }
.thread-actions [data-control=conversationToggle]::after { content: '›'; font-size: 1.25rem }
.thread-actions [data-control=conversationToggle][aria-expanded=true]::after { transform: rotate(90deg) }
.feedback:not(:empty) { max-width: 44rem; padding: .75rem; margin: 0 auto 1rem; border: 1px solid #d9d9d9; overflow-wrap: anywhere }
.row { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap }
.between { justify-content: space-between }
.list { display: flex; flex-direction: column; gap: .5rem; max-width: 44rem; margin-bottom: 1rem }
.list .nav-link { display: block; padding: .75rem; border-bottom: 1px solid #d9d9d9 }
.list .nav-link strong, .list .nav-link small { display: block; overflow-wrap: anywhere }
.list .nav-link small { margin-top: .25rem }
/* Only derivative secondary labels truncate; primary names and filenames always wrap. */
.secondary-label { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis }
.matter-list-heading, .conversation-list-heading { max-width: 44rem; margin-bottom: 1rem }
.matter-list-heading h2, .conversation-list-heading h2 { margin: 0 }
.matters, .conversations { padding: .5rem; background: #fff; border: 1px solid var(--line); border-radius: 8px }
.matters:empty, .conversations:empty { display: none }
.matters .nav-link, .conversations .nav-link { border-bottom: 1px solid var(--line); color: var(--ink); padding: .75rem }
.matters .nav-link:last-child, .conversations .nav-link:last-child { border-bottom: 0 }
.matters .nav-link strong, .conversations .nav-link strong { text-decoration: underline; text-decoration-thickness: 1px }
.matters .nav-link small, .conversations .nav-link small { color: var(--muted) }
.conversations .conversation-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem .75rem; margin-top: .375rem }
.conversations .conversation-access { padding: .125rem .375rem; background: var(--soft); color: var(--ink); border-radius: 4px; font-size: .875rem; line-height: 1.25rem; font-weight: 600 }
.conversations .nav-link .conversation-activity { margin: 0 }
.conversations .conversation-activity time { font-variant-numeric: tabular-nums }
.conversation-navigation { min-width: 0; padding: 1rem .75rem; background: #fff; border-right: 1px solid var(--line); overflow-wrap: anywhere }
.conversation-navigation[hidden] { display: none }
.conversation-navigation > .row { margin-bottom: .75rem }
.conversation-navigation h2 { margin: 0 }
.conversation-navigation button { max-width: 100%; overflow-wrap: anywhere }
.conversation-navigation > [data-control=newThread] { width: 100% }
.conversation-navigation .conversations { padding: 0; margin: .75rem 0; border: 0; border-radius: 0; background: transparent }
.conversation-navigation .conversations .nav-link { padding: .75rem .5rem; border-left: 3px solid transparent; border-bottom: 0 }
.conversation-navigation .conversations .nav-link strong { font-weight: 500; text-decoration: none }
.conversation-navigation .conversations .nav-link:is(:hover, :focus-visible) strong { text-decoration: underline }
.conversation-navigation .conversations .nav-link.selected { border-left-color: var(--action); background: var(--soft) }
.conversation-navigation .conversations .nav-link.selected strong { font-weight: 700 }
.conversation-navigation .conversation-access { padding: 0; background: transparent }
.conversation-navigation .conversation-meta { align-items: start }
.conversation-navigation .conversation-activity { overflow-wrap: anywhere }
.conversation-nav-open .conversation-navigation { grid-column: 1 / -1 }
@media (min-width: 1280px) {
  .conversation-nav-open { grid-template-columns: 13rem minmax(0, 1fr) }
  .conversation-nav-open.detail-open { grid-template-columns: 13rem minmax(0, 1fr) 320px }
  .conversation-nav-open .conversation-navigation { grid-column: 1; grid-row: 2 }
  .conversation-navigation { position: sticky; top: 0; max-height: 100dvh; overflow-y: auto; overscroll-behavior: auto; scroll-padding: .5rem }
  .conversation-nav-open .center { grid-column: 2; grid-row: 2 }
  .conversation-nav-open .detail { grid-column: 3; grid-row: 2 }
  .conversation-navigation [data-control=closeConversations] { display: none }
}
@media (min-width: 1440px) { .conversation-nav-open.detail-open { grid-template-columns: 13rem minmax(0, 1fr) 384px } }
@media (max-width: 1279px) { .conversation-nav-open { grid-template-rows: auto auto minmax(0, 1fr) } }
.thread-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; color: var(--muted); font-size: .875rem; min-width: 0 }
.thread-details, .identity-details { margin: 0; overflow-wrap: anywhere; min-width: 0 }
.thread-details summary, .identity-details summary { min-height: 44px; display: flex; align-items: center; color: var(--action) }
.thread-details summary::before { content: '›'; margin-right: .375rem; font-size: 1.25rem }
.thread-details[open] summary::before { transform: rotate(90deg) }
.thread-details p { margin: .25rem 0 }
.identity-details .reference { display: block; padding-bottom: .5rem }
.reference, .lineage { overflow-wrap: anywhere }
.reference { user-select: text; font-size: .875rem }
.card { border: 1px solid #d9d9d9; border-radius: 6px; padding: 1rem; margin: 1rem 0; background: #fff }
.new-matter { max-width: 44rem; border-color: var(--line); border-radius: 8px; overflow-wrap: anywhere }
.new-matter label[hidden] { display: none }
.new-matter button { max-width: 100%; overflow-wrap: anywhere }
.composer { margin: .5rem 0; padding: .5rem 1rem; background: #fff; border: 1px solid var(--control-border); border-radius: 8px }
.composer:focus-within { border-color: var(--action) }
.composer .question-label { margin: 0; font-weight: 600 }
.composer textarea { display: block; margin-top: .5rem; font-weight: 400; border-color: transparent }
.composer-actions { justify-content: flex-end; padding-top: .5rem }
.composer-actions .ask-reason:not([hidden]) { margin: 0 auto 0 0; flex: 1 1 12rem; font-size: .875rem }
.composer-actions button { min-width: 5rem }
.dialog-actions { justify-content: flex-end }
.primary { background: var(--action); border-color: var(--action); color: #fff }
.primary:hover { background: var(--fw-action-hover); color: #fff }
.secondary { background: transparent; border-color: var(--line) }
.destructive { color: var(--fw-danger); border-color: var(--fw-danger) }
.destructive:not(:disabled):hover { background: var(--fw-danger-bg) }
.read-only { margin-top: .75rem; padding: 1rem; background: #fff; border: 1px solid var(--line); border-radius: 8px }
.read-only p { margin: 0 0 .5rem }
.lineage { margin: .5rem 0 1rem }
.inherited-history { border-top: 1px solid #d9d9d9 }
.inherited-history h3, .continuation h3 { color: #595959; margin: 1.5rem 0 .5rem }
.message { margin: .5rem 0; white-space: pre-wrap; overflow-wrap: anywhere }
.message small { display: block }
.message.question { width: fit-content; max-width: 100%; margin-left: auto; padding: .5rem 1rem; background: var(--page); border: 1px solid var(--line); border-radius: 8px }
.message.assistant { padding: .5rem 1rem; background: #fff; font-size: 1.0625rem; line-height: 1.75rem }
.message-header { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .75rem; margin-bottom: .25rem; white-space: normal }
.message-header strong { color: var(--ink); font-size: .9375rem; line-height: 1.25rem; font-weight: 600 }
.message.assistant .message-header time { margin-left: auto; text-align: right }
.message-header time { font-variant-numeric: tabular-nums }
.message.provisional { border-style: dashed }
.latest { position: fixed; z-index: 5; right: 1.5rem; bottom: 1rem; box-shadow: 0 2px 10px #20202033 }
.assistant button { margin-left: .5rem }
.reply-association, .disclosure { color: var(--muted); font-size: .875rem; line-height: 1.25rem; overflow-wrap: anywhere }
.claim { margin: .5rem 0 }
.claim:first-child, .message.assistant > .claim:first-of-type { margin-top: 0 }
.message.assistant > .claim:last-of-type { margin-bottom: 0 }
.references { display: grid; gap: .25rem; margin-top: .25rem }
.chip, .badge { font-size: .875rem; line-height: 1.25rem; max-width: 100%; overflow-wrap: anywhere }
.chip { min-width: 0; text-decoration: underline }
/* Preserve server identity/locator whitespace in every citation resolution state. */
.chip.fw-chip { white-space: pre-wrap }
.file-icon { width: 1.5rem; height: 1.5rem; flex: none; vertical-align: middle }
.citation-text { min-width: 0; white-space: pre-wrap }
.citation-name { font-weight: 500 }
.chip.unavailable, .chip.loading, .chip.failed { color: var(--muted); text-decoration: none }
.badge { display: inline-flex; align-items: center; background: #fff4dd; border: 1px solid #ead6ad; padding: .375rem .5rem; border-radius: 6px; color: #74450e; margin: .25rem .25rem .25rem 0 }
.progress { color: var(--muted); font-size: .9375rem; min-height: 1.5rem }
.adjacent { border-top: 1px solid var(--line); padding-top: .75rem; margin-top: 1rem }
.adjacent > .disclosure { padding: .625rem .75rem; background: #fff4dd; color: #74450e; border-radius: 6px }
.summary, .source-summary { white-space: pre-wrap; overflow-wrap: anywhere }
.signin { max-width: 390px; margin: 10vh auto; padding: 2rem; background: #fff; border: 1px solid #d9d9d9; border-radius: 6px; overflow-wrap: anywhere }
.signin #workspace-help { display: block; margin-top: -.25rem }
.signin button, .matter-record button { max-width: 100%; overflow-wrap: anywhere }
.auth-card { max-width: 36rem }
.auth-card .auth-qr { display: block; margin: 1rem 0; max-width: 100%; height: auto }
.auth-card .auth-manual { padding: .5rem 0; border: 0; background: transparent; text-decoration: underline }
.auth-card .auth-code, .auth-card .recovery-codes { font: .9375rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; user-select: text }
.auth-card .auth-code { padding: .75rem; background: #f5f5f5 }
.auth-card .recovery-codes { padding-left: 2rem }
.auth-card .recovery-codes li { padding: .25rem 0 }
.error { color: #202020 }
.error::before { content: '! '; font-weight: 700 }
#sources { width: 100%; min-width: 0 }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap }
.intake { margin-block: var(--fw-space-4); min-width: 0 }
.intake h3 { margin-bottom: var(--fw-space-2) }
.intake-current-slot { min-block-size: var(--fw-leading-meta); margin-block-end: var(--fw-space-2) }
.intake-current { margin: 0 }
.intake-list { display: grid; gap: var(--fw-space-3); margin: 0; padding: 0; list-style: none }
.intake-file { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--fw-space-2); padding-block-start: var(--fw-space-3); border-top: 1px solid var(--fw-line); min-inline-size: 0; overflow-wrap: anywhere }
.intake-identity { display: flex; align-items: start; gap: var(--fw-space-2); min-inline-size: 0 }
.intake-identity bdi { font-size: var(--fw-text-body); line-height: var(--fw-leading-body); font-weight: 600; min-inline-size: 0 }
.intake-activity { min-inline-size: 0; font-size: var(--fw-text-meta); line-height: var(--fw-leading-meta) }
.intake-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fw-space-2); min-inline-size: 0 }
.intake-actions:empty { display: none }
/* Active phases share the two-line status minimum and a growable action slot:
   admission may expose Retry, and a clean original may expose Download. */
.intake-file--active .intake-actions { display: flex; min-block-size: var(--fw-target) }
.intake-actions :is(a, button) { min-height: var(--fw-target); font-size: var(--fw-text-control); line-height: var(--fw-leading-control); max-inline-size: 100%; overflow-wrap: anywhere }
.files-heading .fw-page-header__actions { margin-inline-start: auto }
.file-upload { display: grid; gap: var(--fw-space-2); margin-block: var(--fw-space-4) }
.file-upload > button { justify-self: start }
.file-upload[hidden], .intake[hidden] { display: none }
.file-upload button[aria-disabled=true], .intake-actions button[aria-disabled=true] { color: var(--fw-muted); cursor: default; background: var(--fw-page) }
.file-toolbar { display: grid; gap: var(--fw-space-3); margin-block: var(--fw-space-3) }
.file-settings-group { display: flex; flex-wrap: wrap; align-items: start; gap: var(--fw-space-2) var(--fw-space-4); min-inline-size: 0 }
.file-settings-group .file-settings { margin: 0; max-inline-size: 100% }
.file-settings > summary { padding: var(--fw-space-2) var(--fw-space-3); border: 1px solid var(--fw-line); border-radius: var(--fw-radius-control); background: var(--fw-surface) }
.file-settings > summary:hover { background: var(--fw-selected) }
.file-settings[open] { flex: 1 1 26rem }
.file-search { margin: 0 }
.file-results > h3 { margin-bottom: .5rem }
.source-collection { display: flow-root }
/* Category words set the rail's minimum; multiword labels may wrap. */
.files-layout { display: grid; grid-template-columns: fit-content(16rem) minmax(0, 1fr); gap: 24px }
.file-folders { display: flex; flex-direction: column; align-items: stretch; gap: .25rem }
.folder-button { text-align: left; background: transparent; color: var(--muted); border: 0; border-left: 3px solid transparent; border-radius: 6px; overflow-wrap: normal }
.folder-button.selected { background: var(--soft); color: var(--action); border-left-color: var(--action); font-weight: 600 }
.file-toolbar .folder-chooser { display: none; max-inline-size: 26rem }
.file-results { min-width: 0; container-type: inline-size }
.file-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; margin-top: .75rem }
.file-filters label { margin: 0; flex: 1 1 11rem; min-width: 0 }
.file-filters button { flex: 0 1 auto; max-width: 100% }
.file-exceptions, .file-paging { display: flex; flex-wrap: wrap; gap: var(--fw-space-2) var(--fw-space-4); align-items: center; margin: .75rem 0 }
.file-paging { min-block-size: var(--fw-target) }
/* Keep the footprint of naturally wrapping range/actions even when one-page
   controls are omitted. rem queries also cover enlarged-text reflow. */
@container (max-width: 20rem) {
  .file-paging { min-block-size: calc(2 * var(--fw-target) + var(--fw-space-2)) }
}
@container (max-width: 10rem) {
  .file-paging { min-block-size: calc(2 * var(--fw-target) + 2 * var(--fw-leading-body) + 2 * var(--fw-space-2)) }
}
.file-settings-group .file-exceptions { margin: 0; flex: 1 1 16rem; min-inline-size: 0 }
.file-exceptions:empty { display: none }
.file-exceptions button { border-color: var(--fw-line); max-inline-size: 100%; overflow-wrap: anywhere }
.file-note { margin: .75rem 0 }
.source { margin: var(--fw-space-2) 0 }
.source-identity, .source-state, .source-download { min-width: 0 }
.source-heading { display: flex; align-items: center; gap: .5rem }
.source-heading .source-link { flex: 1 1 12rem; min-width: 0 }
.source-identity > small { display: block }
.source-state { margin-block-start: var(--fw-space-2); font-size: var(--fw-text-meta); line-height: var(--fw-leading-meta) }
.source-download { display: flex; flex-wrap: wrap; align-items: start; align-self: start; gap: var(--fw-space-2); max-inline-size: 24rem }
.source-download:empty { display: none }
.source-download :is(a, button) { max-inline-size: 100%; font-size: var(--fw-text-control); line-height: var(--fw-leading-control); min-height: var(--fw-target); overflow-wrap: anywhere }
.source-download .source-link { min-inline-size: min(11rem, 100%); justify-content: start }
.source-download button[aria-disabled=true] { color: var(--fw-muted); cursor: default; background: var(--fw-page) }
.file-identity .source-link { font-size: var(--fw-text-control); line-height: var(--fw-leading-control); min-height: var(--fw-target); justify-content: start; margin-block-start: var(--fw-space-2) }
.source strong { font-size: 1rem; line-height: 1.5rem; font-weight: 600 }
.source bdi { overflow-wrap: anywhere; white-space: normal }
.source-link { display: inline-flex; align-items: center; min-height: 44px }
.source-maintenance { grid-column: 1 / -1 }
.source-maintenance > button { margin: .25rem .5rem .25rem 0 }
.source-review { grid-column: 1 / -1; min-width: 0; margin-top: .5rem; padding: .75rem 1rem; border-left: 3px solid #004c99; background: #f5f5f5 }
.source-review:focus { outline: 3px solid #004c99; outline-offset: 2px; box-shadow: 0 0 0 2px #fff }
.source-review strong { display: block }
.source-review p { margin: .5rem 0 }
.source-review label { max-width: 26rem }
.source-review button { margin: .25rem .5rem .25rem 0 }
.source button { font-size: .9375rem }
.approval-field { margin: .75rem 0; overflow-wrap: anywhere }
.approval-field .muted { display: block }
.file-identity, .file-availability, .file-ai-use, .file-category, .file-maintenance { margin: 0; padding: 1rem 0; overflow-wrap: anywhere }
.file-availability, .file-ai-use, .file-category, .file-maintenance, .file-derivative { border-top: 1px solid var(--line) }
.file-availability h3, .file-ai-use h3, .file-category h3, .file-maintenance h3 { margin-bottom: .5rem }
.file-availability p, .file-category p, .file-maintenance p { margin: .5rem 0 }
.file-heading { display: flex; align-items: start; gap: .5rem }
.file-identity strong { display: block; min-width: 0; font-size: 1rem; line-height: 1.5rem; overflow-wrap: anywhere }
.file-identity bdi { overflow-wrap: anywhere }
.file-identity .approval-field { margin: .5rem 0 }
.detail > .identity-details { margin-block: var(--fw-space-4); padding-block-start: var(--fw-space-4); border-top: 1px solid var(--fw-line) }
.file-availability > button, .file-ai-use > button { margin-block-start: var(--fw-space-2) }
.file-maintenance button { margin: .25rem .5rem .25rem 0 }
.file-derivative { padding-top: 1rem }
.file-derivative summary { color: var(--action); overflow-wrap: anywhere }
.detail { display: none; min-width: 0; overflow-y: auto; overscroll-behavior: contain; padding: 1.25rem; background: #fff; border-left: 1px solid #d9d9d9; position: sticky; top: 0; max-height: 100dvh; scroll-padding: .5rem }
.detail-open { grid-template-columns: minmax(0, 1fr) 24rem }
.detail-open .detail { display: block }
.briefing-state:empty { display: none }
.briefing-state:not(:empty) { margin-bottom: var(--fw-space-4) }
.briefing-state > button, .briefing-state__message > button, .briefing-empty-actions > button { margin-top: var(--fw-space-2) }
#briefing-page button[aria-disabled=true] { color: var(--fw-muted); cursor: default; background: var(--fw-page) }
.briefing-about { margin-top: var(--fw-space-4) }
.summary-update-help { margin: 0 0 var(--fw-space-4) }
.matter-details-page #workspace { max-width: min(68ch, 704px) }
.matter-details-page .detail-back { display: inline-flex; align-items: center; margin-bottom: 1rem }
.matter-record, .usage-page .usage-section { min-width: 0; margin: 1rem 0; padding: 1rem; background: #fff; border: 1px solid var(--line); border-radius: 8px }
.matter-record { overflow-wrap: anywhere }
.matter-record h3, .usage-page .usage-section h3 { margin-bottom: .5rem }
.matter-record .record-list, .usage-page .record-list { margin: 0 }
.matter-record .record-list > div, .usage-page .record-list > div { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); gap: .25rem 1rem; margin: .5rem 0; overflow-wrap: anywhere }
.matter-record dt, .usage-page dt { color: var(--muted); font-size: .875rem; line-height: 1.25rem }
.matter-record dd, .usage-page dd { margin: 0 }
.matter-record details { margin-bottom: 0 }
.usage-page { max-width: 60rem }
.usage-page .usage-totals { max-width: 28rem }
.usage-page .record-list > div { display: flex; flex-wrap: wrap; align-items: baseline }
.usage-page dt { flex: 1 1 auto; min-width: 0; max-width: 100% }
.usage-page dd { max-width: 100%; margin-left: auto; font-weight: 600; text-align: right; font-variant-numeric: tabular-nums }
.usage-page .usage { margin: .5rem 0 0 }
.detail .summary { margin: 1rem 0 }
.detail-back { display: none }
.detail-close { flex: 0 0 auto }
.notice-dialog { width: min(640px, calc(100vw - 1.5rem)); max-height: min(85dvh, 900px); overflow-y: auto; border: 1px solid #595959; border-radius: 6px; background: #fff; color: #202020; padding: 1.25rem; line-height: 1.6 }
.notice-dialog::backdrop { background: #20202088 }
.notice-dialog > button:first-child { float: right; margin-left: .75rem }
.notice-bottom-close { display: block; margin: 1rem 0 0 auto }
.notice-dialog section { margin: 1.25rem 0 }
.notice-dialog h2 { margin-top: .25rem }
.notice-dialog p { white-space: pre-wrap; overflow-wrap: anywhere }
.thread-dialog { width: min(440px, calc(100vw - 1.5rem)); border-color: var(--line); border-radius: 8px; color: var(--ink); overflow-wrap: anywhere }
.thread-dialog button { max-width: 100%; overflow-wrap: anywhere }
.thread-dialog h2 { margin-top: 0 }
.thread-dialog .row { justify-content: flex-end }
.table-scroll { max-width: 100%; overflow-x: auto }
.table-scroll:focus-visible { outline-offset: -3px }
.table-hint { display: none }
.usage { border-collapse: collapse; font-size: .875rem; margin: .5rem 0 1.5rem }
.usage th, .usage td { text-align: left; padding: .375rem .5rem; border-bottom: 1px solid #d9d9d9 }
.usage th { color: #595959; font-weight: 600 }
.usage th.num, .usage td.num { text-align: right; font-variant-numeric: tabular-nums }
details { margin: 1rem 0 }
details summary { cursor: pointer; min-height: 44px }
form { margin: 1rem 0 }
form .row { justify-content: flex-end }
/* UI kit v1: opt-in classes only; existing renderers adopt these in later tasks. */
.fw-muted { color: var(--fw-muted) }
.fw-meta { font-size: var(--fw-text-meta); line-height: var(--fw-leading-meta) }
.fw-page-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--fw-space-3) var(--fw-space-4); margin-bottom: var(--fw-space-4); min-inline-size: 0 }
.fw-page-header h2 { margin: 0; font-size: var(--fw-text-page); line-height: var(--fw-leading-page); font-weight: 600 }
.fw-page-header__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fw-space-2); max-inline-size: 100% }
.fw-destinations { display: flex; flex-wrap: wrap; gap: var(--fw-space-1); min-inline-size: 0 }
.fw-destinations > a { display: inline-flex; align-items: center; min-height: var(--fw-target); padding: var(--fw-space-2) var(--fw-space-3); border-bottom: 3px solid transparent; color: var(--fw-muted); font-size: var(--fw-text-control); line-height: var(--fw-leading-control); text-decoration: none; overflow-wrap: anywhere }
.fw-destinations > a:hover { background: var(--fw-selected) }
.fw-destinations > a[aria-current=page] { color: var(--fw-action); font-weight: 600; background: var(--fw-selected); border-bottom-color: var(--fw-action) }
/* Base control styling and focus are shared with the existing rules above. */
.fw-button, .fw-action-link { display: inline-flex; align-items: center; justify-content: center; gap: var(--fw-space-2); min-height: var(--fw-target); max-inline-size: 100%; border-radius: var(--fw-radius-control); font-weight: 500; overflow-wrap: anywhere; white-space: normal }
.fw-action-link { padding: var(--fw-space-2) var(--fw-space-3); color: var(--fw-action); text-decoration: underline }
.fw-button.secondary { background: var(--fw-surface); border-color: var(--fw-control-border) }
.fw-button.secondary:hover { background: var(--fw-selected) }
.fw-field { display: grid; gap: var(--fw-space-1); margin: 0; min-inline-size: 0; font-size: var(--fw-text-meta); line-height: var(--fw-leading-meta); font-weight: 500 }
.fw-field :is(input, select, textarea) { min-height: var(--fw-target); padding: var(--fw-space-2); border-radius: var(--fw-radius-control); font-size: var(--fw-text-body); line-height: var(--fw-leading-body); font-weight: 400 }
.composer .fw-field textarea { font-size: var(--fw-text-reading); line-height: var(--fw-leading-reading) }
.fw-status { display: grid; grid-template-columns: 16px minmax(0, 1fr); align-items: start; gap: var(--fw-space-2); color: var(--fw-status-neutral); font-size: var(--fw-text-meta); line-height: var(--fw-leading-meta); font-weight: 500; min-inline-size: 0 }
.fw-status--neutral { color: var(--fw-status-neutral) }
.fw-status--active { color: var(--fw-status-active) }
.fw-status--warning { color: var(--fw-status-warning) }
.fw-status--error { color: var(--fw-status-error) }
.fw-status__text { min-inline-size: 0; overflow-wrap: anywhere }
.fw-status__icon { position: relative; display: inline-block; inline-size: 16px; block-size: 16px; margin-block-start: 2px; border: 2px solid currentColor; border-radius: 50% }
.fw-status__icon::before, .fw-status__icon::after { content: ''; position: absolute; background: currentColor }
.fw-status--neutral .fw-status__icon::before { inline-size: 2px; block-size: 5px; inset: 5px auto auto 5px }
.fw-status--neutral .fw-status__icon::after { inline-size: 2px; block-size: 2px; inset: 2px auto auto 5px }
.fw-status--active .fw-status__icon::before { inline-size: 2px; block-size: 5px; inset: 2px auto auto 5px }
.fw-status--active .fw-status__icon::after { inline-size: 4px; block-size: 2px; inset: 5px auto auto 5px }
.fw-status--warning .fw-status__icon { border: 0; border-radius: 0; background: currentColor; clip-path: polygon(50% 0, 100% 100%, 0 100%) }
.fw-status--warning .fw-status__icon::before { inline-size: 2px; block-size: 5px; inset: 5px auto auto 7px; background: var(--fw-surface) }
.fw-status--warning .fw-status__icon::after { inline-size: 2px; block-size: 2px; inset: 12px auto auto 7px; background: var(--fw-surface) }
.fw-status--error .fw-status__icon::before, .fw-status--error .fw-status__icon::after { inline-size: 8px; block-size: 2px; inset: 5px auto auto 2px; transform: rotate(45deg) }
.fw-status--error .fw-status__icon::after { transform: rotate(-45deg) }
/* Fetch-only lines may opt into a static 16px, 2px ring; activity bars never spin their icon. */
.fw-status--fetch .fw-status__icon { border: 2px solid currentColor; border-inline-end-color: transparent; border-radius: 50% }
.fw-status--fetch .fw-status__icon::before, .fw-status--fetch .fw-status__icon::after { display: none }
.fw-activity { display: grid; gap: var(--fw-space-2); padding: var(--fw-space-3) var(--fw-space-4); min-block-size: 4rem; min-inline-size: 0; border: 1px solid var(--fw-line); border-radius: var(--fw-radius-surface); background: var(--fw-surface) }
.fw-activity--embedded { padding: 0; border: 0; background: transparent }
.fw-activity__track { block-size: 6px; background: var(--fw-line); border-radius: 999px; overflow: hidden }
.fw-activity__fill { block-size: 100%; background: var(--fw-action) }
.fw-activity__track:not([aria-valuenow]) .fw-activity__fill { inline-size: 32%; animation: fw-activity-travel var(--fw-motion-activity) linear infinite }
@keyframes fw-activity-travel { from { transform: translateX(-100%) } to { transform: translateX(312.5%) } }
.fw-activity--two-lines .fw-status__text { min-block-size: calc(2 * var(--fw-leading-meta)) }
.fw-activity--long-wait { grid-template-rows: auto 6px minmax(var(--fw-leading-meta), auto) }
.fw-activity__helper { margin: 0; min-block-size: var(--fw-leading-meta); color: var(--fw-muted); font-size: var(--fw-text-meta); line-height: var(--fw-leading-meta); overflow-wrap: anywhere }
.fw-activity__helper[aria-hidden=true] { visibility: hidden }
.fw-activity--stopped .fw-activity__track:not([aria-valuenow]) .fw-activity__fill { animation: none; transform: none; margin-inline: auto }
#pending-work { white-space: normal }
@media (prefers-reduced-motion: reduce) {
  .fw-activity__track:not([aria-valuenow]) .fw-activity__fill { animation: none; transform: none; margin-inline: auto }
}
.fw-provenance { margin: 0 0 var(--fw-space-4); padding: 0; border: 0; background: transparent; color: var(--fw-muted); font-size: var(--fw-text-meta); line-height: var(--fw-leading-meta); font-weight: 400; overflow-wrap: anywhere }
.fw-provenance strong { font-weight: 600 }
.fw-badge { display: inline-flex; align-items: center; max-inline-size: 100%; padding: 2px var(--fw-space-2); border: 1px solid var(--fw-line); border-radius: var(--fw-radius-tag); background: var(--fw-page); color: var(--fw-muted); font-size: var(--fw-text-meta); line-height: var(--fw-leading-meta); font-weight: 500; overflow-wrap: anywhere }
.fw-badge--warning { color: var(--fw-warning); background: var(--fw-warning-bg); border-color: var(--fw-warning-line) }
.fw-chip { display: inline-flex; align-items: center; gap: var(--fw-space-2); inline-size: fit-content; max-inline-size: 100%; min-height: var(--fw-target); padding: var(--fw-space-2) var(--fw-space-3); border: 1px solid var(--fw-line); border-radius: var(--fw-radius-control); background: var(--fw-surface); font-size: var(--fw-text-meta); line-height: var(--fw-leading-meta); overflow-wrap: anywhere; white-space: normal }
.fw-chip:is(:hover, [aria-current], [aria-pressed=true], .selected) { background: var(--fw-selected) }
.fw-disclosure { margin: 0; min-inline-size: 0 }
.fw-disclosure > summary { display: flex; align-items: center; gap: var(--fw-space-2); min-height: var(--fw-target); list-style: none; color: var(--fw-action); font-size: var(--fw-text-control); line-height: var(--fw-leading-control); font-weight: 500; overflow-wrap: anywhere }
.fw-disclosure > summary::-webkit-details-marker { display: none }
.fw-disclosure__chevron { position: relative; flex: none; inline-size: 16px; block-size: 16px }
.fw-disclosure__chevron::before { content: ''; position: absolute; inline-size: 8px; block-size: 8px; inset: 4px auto auto 2px; border-inline-end: 2px solid currentColor; border-block-end: 2px solid currentColor; transform: rotate(-45deg) }
.fw-disclosure[open] > summary .fw-disclosure__chevron::before { transform: rotate(45deg) }
.fw-surface, .fw-source-row { min-inline-size: 0; padding: var(--fw-space-4); border: 1px solid var(--fw-line); border-radius: var(--fw-radius-surface); background: var(--fw-surface); overflow-wrap: anywhere }
.fw-source-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--fw-space-2) var(--fw-space-4) }
@container (min-width: 60rem) { .fw-source-row { grid-template-columns: minmax(0, 1fr) minmax(11rem, max-content) } }
.fw-page--reading { max-inline-size: var(--fw-page-reading-width); margin-inline: auto; overflow-wrap: anywhere }
.fw-page--reading .fw-page-header__actions { margin-inline-start: auto }
.fw-page--reading > .fw-surface { padding: var(--fw-space-6) }
@media (max-width: 959px) { .fw-page--reading > .fw-surface { padding: var(--fw-space-4) } }
.fw-prose { max-inline-size: var(--fw-reading-width); color: var(--fw-ink); font-size: var(--fw-text-reading); line-height: var(--fw-leading-reading); white-space: normal; overflow-wrap: anywhere }
.fw-prose p { margin: 0 0 var(--fw-space-4) }
.fw-prose :is(h3, h4, h5, h6) { margin: var(--fw-space-6) 0 var(--fw-space-2); font-weight: 600; overflow-wrap: anywhere }
.fw-prose h3 { font-size: var(--fw-text-section); line-height: var(--fw-leading-section) }
.fw-prose :is(h4, h5, h6) { font-size: var(--fw-text-body); line-height: var(--fw-leading-body) }
.fw-prose :is(ul, ol) { margin: 0 0 var(--fw-space-4); padding-inline-start: var(--fw-space-6) }
.fw-prose li { margin-block: var(--fw-space-1) }
.fw-prose strong { font-weight: 600 }
.fw-prose em { font-style: italic }
.fw-prose > :first-child { margin-block-start: 0 }
.fw-prose .fw-prose__literal { white-space: pre-wrap }
@media (min-width: 960px) and (max-width: 1119px) { .detail-open { grid-template-columns: minmax(0, 1fr) 22.5rem } }
@media (max-width: 1119px) {
  .files-layout { display: block }
  .file-folders { display: none }
  .file-toolbar .folder-chooser { display: grid }
}
.detail-open .files-layout { display: block }
.detail-open .file-folders { display: none }
.detail-open .folder-chooser { display: grid }
@media (max-width: 959px) {
  .center { padding: 1rem 1rem 3rem }
  .global-band, .destination-band { padding: 0 1rem }
  .matter-heading { padding: .75rem 1rem }
  .detail-page { display: block }
  .detail-page .center { display: none }
  .detail-page .detail { position: static; display: block; max-height: none; border: 0; overflow: visible; padding: 1rem; }
  .detail-page .detail-back { display: inline-flex; align-items: center; margin-bottom: 1rem }
  .detail-page .detail-close { display: none }
}
@media (max-width: 639px) {
  .matter-record .record-list > div { grid-template-columns: minmax(0, 1fr) }
}
@media (max-width: 480px) {
  .wordmark { font-size: .875rem }
  .global-band { flex-wrap: wrap; gap: .25rem }
  .global-band .account { margin-left: auto }
  .global-band .nav-link, .global-band .account > summary { padding: .5rem; justify-content: center; text-align: center }
  .matter-heading h1 { font-size: 1.25rem; line-height: 1.625rem }
  .matter-heading .nav-link { margin-left: 0 }
  .destination-band { flex-wrap: wrap; gap: 0 }
  .destination-band .nav-link { flex: 1 1 auto; justify-content: center; text-align: center; padding: .5rem .25rem; min-width: 0 }
  .composer, .message.question, .message.assistant { padding-left: .75rem; padding-right: .75rem }
  .table-hint { display: block }
  .signin { margin: 1rem; padding: 1rem }
  .intake { padding-inline: .5rem }
  .new-matter, .thread-dialog { padding-inline: 16px }
}
