/* ==========================================================================
   FinMV application styles
   --------------------------------------------------------------------------
   Hand-written on the tokens in tokens.css. No framework, no build step, no
   utility dialect (ADR-003) — which is also what lets the Content-Security-
   Policy stay as tight as it is: there is nothing third-party to whitelist.

   Structure: reset, shell, primitives, components, utilities. Components are
   named after what they are in the product, so a Blade component and its CSS
   class always share a name.
   ========================================================================== */

/* ------------------------------------------------------------------ reset */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    font-family: var(--fmv-font);
    font-size: var(--fmv-text-base);
    line-height: var(--fmv-leading-normal);
    color: var(--fmv-ink);
    background: var(--fmv-canvas);
}

h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
img, svg { max-width: 100%; vertical-align: middle; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--fmv-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

/* A visible focus ring everywhere, on purpose. Removing it is the single most
   common accessibility regression in an application shell. */
:focus-visible {
    outline: 2px solid var(--fmv-primary);
    outline-offset: 2px;
    border-radius: var(--fmv-radius-sm);
}

.fmv-skip {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: var(--fmv-z-toast);
    padding: var(--fmv-space-3) var(--fmv-space-4);
    background: var(--fmv-surface);
    box-shadow: var(--fmv-shadow-lg);
    border-radius: 0 0 var(--fmv-radius) 0;
}
.fmv-skip:focus { left: 0; }

.fmv-visually-hidden {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* ------------------------------------------------------------------ shell */

.fmv-shell { display: flex; min-height: 100vh; }

.fmv-sidebar {
    width: var(--fmv-shell-width);
    flex: 0 0 var(--fmv-shell-width);
    background: var(--fmv-shell-bg);
    color: var(--fmv-shell-fg);
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
}

.fmv-brand {
    display: flex;
    align-items: center;
    gap: var(--fmv-space-2);
    padding: var(--fmv-space-4) var(--fmv-space-5);
    border-bottom: 1px solid var(--fmv-shell-line);
    color: var(--fmv-shell-fg-strong);
    font-size: var(--fmv-text-lg);
    font-weight: 700;
    letter-spacing: -.01em;
}
.fmv-brand:hover { text-decoration: none; }
.fmv-brand__mark {
    display: inline-grid;
    place-items: center;
    width: 28px; height: 28px;
    border-radius: var(--fmv-radius);
    background: var(--fmv-primary);
    color: #fff;
    font-size: var(--fmv-text-sm);
    font-weight: 700;
}
.fmv-brand__suffix {
    font-weight: 400;
    font-size: var(--fmv-text-sm);
    opacity: .7;
}

.fmv-nav { padding: var(--fmv-space-3) var(--fmv-space-3) var(--fmv-space-6); }
.fmv-nav__group + .fmv-nav__group { margin-top: var(--fmv-space-5); }
.fmv-nav__label {
    padding: 0 var(--fmv-space-3) var(--fmv-space-2);
    font-size: var(--fmv-text-xs);
    text-transform: uppercase;
    letter-spacing: .08em;
    opacity: .55;
}
.fmv-nav__link {
    display: flex;
    align-items: center;
    gap: var(--fmv-space-3);
    padding: var(--fmv-space-2) var(--fmv-space-3);
    border-radius: var(--fmv-radius);
    color: var(--fmv-shell-fg);
    font-size: var(--fmv-text-base);
}
.fmv-nav__link:hover { background: var(--fmv-shell-hover-bg); text-decoration: none; }
.fmv-nav__link[aria-current="page"] {
    background: var(--fmv-shell-active-bg);
    color: var(--fmv-shell-fg-strong);
    font-weight: 600;
}
.fmv-nav__link--disabled { opacity: .4; cursor: not-allowed; }
.fmv-nav__icon { width: 16px; flex: 0 0 16px; opacity: .85; }
.fmv-nav__soon {
    margin-left: auto;
    font-size: var(--fmv-text-xs);
    opacity: .6;
}

.fmv-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }

.fmv-topbar {
    height: var(--fmv-topbar-height);
    display: flex;
    align-items: center;
    gap: var(--fmv-space-4);
    padding: 0 var(--fmv-space-6);
    background: var(--fmv-surface);
    border-bottom: 1px solid var(--fmv-line);
    position: sticky;
    top: 0;
    z-index: 20;
}
.fmv-topbar__spacer { flex: 1 1 auto; }

.fmv-content {
    flex: 1 1 auto;
    padding: var(--fmv-space-6);
    max-width: var(--fmv-content-max);
    width: 100%;
}

/* ------------------------------------------------------------- primitives */

.fmv-card {
    background: var(--fmv-surface-raised);
    border: 1px solid var(--fmv-line);
    border-radius: var(--fmv-radius-lg);
    box-shadow: var(--fmv-shadow-sm);
}
.fmv-card__header {
    display: flex;
    align-items: center;
    gap: var(--fmv-space-3);
    padding: var(--fmv-space-4) var(--fmv-space-5);
    border-bottom: 1px solid var(--fmv-line-soft);
}
.fmv-card__title { font-size: var(--fmv-text-md); font-weight: 600; }
.fmv-card__body { padding: var(--fmv-space-5); }
.fmv-card__footer {
    padding: var(--fmv-space-3) var(--fmv-space-5);
    border-top: 1px solid var(--fmv-line-soft);
    background: var(--fmv-surface-sunken);
    border-radius: 0 0 var(--fmv-radius-lg) var(--fmv-radius-lg);
}

.fmv-page-header { margin-bottom: var(--fmv-space-6); }
.fmv-page-header__row {
    display: flex;
    align-items: flex-start;
    gap: var(--fmv-space-4);
    flex-wrap: wrap;
}
.fmv-page-header__title {
    font-size: var(--fmv-text-2xl);
    line-height: var(--fmv-leading-tight);
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--fmv-ink-strong);
}
.fmv-page-header__lede {
    margin-top: var(--fmv-space-2);
    color: var(--fmv-ink-muted);
    max-width: 68ch;
}
.fmv-page-header__actions { margin-left: auto; display: flex; gap: var(--fmv-space-2); }

.fmv-eyebrow {
    font-size: var(--fmv-text-xs);
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--fmv-ink-subtle);
    font-weight: 600;
}

/* -------------------------------------------------------------- controls */

.fmv-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--fmv-space-2);
    padding: var(--fmv-space-2) var(--fmv-space-4);
    min-height: 34px;
    border: 1px solid transparent;
    border-radius: var(--fmv-radius);
    background: var(--fmv-surface);
    color: var(--fmv-ink);
    font-size: var(--fmv-text-base);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.fmv-btn:hover { text-decoration: none; }
.fmv-btn--primary { background: var(--fmv-primary); border-color: var(--fmv-primary); color: #fff; }
.fmv-btn--primary:hover { background: var(--fmv-primary-strong); border-color: var(--fmv-primary-strong); }
.fmv-btn--secondary { background: var(--fmv-surface); border-color: var(--fmv-line-strong); }
.fmv-btn--secondary:hover { background: var(--fmv-surface-sunken); }
.fmv-btn--ghost { background: transparent; color: var(--fmv-ink-muted); }
.fmv-btn--ghost:hover { background: var(--fmv-surface-tint); color: var(--fmv-ink); }
.fmv-btn--danger { background: var(--fmv-danger); border-color: var(--fmv-danger); color: #fff; }
.fmv-btn--sm { min-height: 28px; padding: var(--fmv-space-1) var(--fmv-space-3); font-size: var(--fmv-text-sm); }
.fmv-btn[disabled], .fmv-btn--disabled { opacity: .55; cursor: not-allowed; pointer-events: none; }
.fmv-btn[aria-busy="true"] { opacity: .75; pointer-events: none; }

.fmv-field { display: block; margin-bottom: var(--fmv-space-4); }
.fmv-field__label {
    display: block;
    margin-bottom: var(--fmv-space-1);
    font-size: var(--fmv-text-sm);
    font-weight: 600;
    color: var(--fmv-ink);
}
.fmv-field__hint { margin-top: var(--fmv-space-1); font-size: var(--fmv-text-sm); color: var(--fmv-ink-subtle); }
.fmv-field__error { margin-top: var(--fmv-space-1); font-size: var(--fmv-text-sm); color: var(--fmv-danger); }

.fmv-input, .fmv-select, .fmv-textarea {
    display: block;
    width: 100%;
    padding: var(--fmv-space-2) var(--fmv-space-3);
    min-height: 36px;
    border: 1px solid var(--fmv-line-strong);
    border-radius: var(--fmv-radius);
    background: var(--fmv-surface);
}
.fmv-input:focus, .fmv-select:focus, .fmv-textarea:focus {
    border-color: var(--fmv-primary);
    outline: 2px solid var(--fmv-primary-soft);
    outline-offset: 0;
}
.fmv-input[aria-invalid="true"] { border-color: var(--fmv-danger); }
.fmv-textarea { min-height: 96px; resize: vertical; }

/* ------------------------------------------------------------ indicators */

.fmv-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--fmv-space-1);
    padding: 2px var(--fmv-space-2);
    border-radius: var(--fmv-radius-pill);
    font-size: var(--fmv-text-xs);
    font-weight: 600;
    line-height: 1.6;
    white-space: nowrap;
}
.fmv-badge--success  { background: var(--fmv-success-soft);  color: var(--fmv-success); }
.fmv-badge--warning  { background: var(--fmv-warning-soft);  color: var(--fmv-warning); }
.fmv-badge--danger   { background: var(--fmv-danger-soft);   color: var(--fmv-danger); }
.fmv-badge--critical { background: var(--fmv-critical-soft); color: var(--fmv-critical); }
.fmv-badge--info     { background: var(--fmv-info-soft);     color: var(--fmv-info); }
.fmv-badge--neutral  { background: var(--fmv-neutral-soft);  color: var(--fmv-neutral); }
.fmv-badge__dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

.fmv-metric { display: flex; flex-direction: column; gap: var(--fmv-space-1); }
.fmv-metric__label { font-size: var(--fmv-text-sm); color: var(--fmv-ink-muted); }
.fmv-metric__value {
    font-size: var(--fmv-text-2xl);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
    color: var(--fmv-ink-strong);
}
.fmv-metric__unit { font-size: var(--fmv-text-md); font-weight: 600; color: var(--fmv-ink-muted); }
.fmv-metric__foot { font-size: var(--fmv-text-sm); color: var(--fmv-ink-subtle); }

/* A score with no evidence behind it is not a low score, it is no score.
   Rendered as a dash in muted grey so it can never read as "bad". */
.fmv-metric--unassessed .fmv-metric__value { color: var(--fmv-ink-subtle); font-weight: 600; }

.fmv-meter {
    height: 6px;
    border-radius: var(--fmv-radius-pill);
    background: var(--fmv-neutral-soft);
    overflow: hidden;
}
.fmv-meter__fill { height: 100%; border-radius: inherit; background: var(--fmv-primary); }
.fmv-meter__fill--success  { background: var(--fmv-success); }
.fmv-meter__fill--warning  { background: var(--fmv-warning); }
.fmv-meter__fill--danger   { background: var(--fmv-danger); }
.fmv-meter__fill--critical { background: var(--fmv-critical); }

/* Provenance markers. These are the visual grammar of ADR-008: a customer must
   be able to see at a glance whether something is evidence or interpretation. */
.fmv-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--fmv-space-1);
    padding: 1px var(--fmv-space-2);
    border: 1px solid var(--fmv-line-strong);
    border-radius: var(--fmv-radius-sm);
    background: var(--fmv-surface-sunken);
    font-size: var(--fmv-text-xs);
    color: var(--fmv-ink-muted);
}
.fmv-chip--evidence  { border-color: #b9cdf3; background: var(--fmv-primary-tint); color: var(--fmv-primary); }
.fmv-chip--inference { border-style: dashed; }
.fmv-chip--stale     { border-color: #e6c79a; background: var(--fmv-warning-soft); color: var(--fmv-warning); }

.fmv-confidence { display: inline-flex; align-items: center; gap: 3px; }
.fmv-confidence__pip {
    width: 5px; height: 10px;
    border-radius: 1px;
    background: var(--fmv-line-strong);
}
.fmv-confidence__pip--on { background: var(--fmv-primary); }
.fmv-confidence--low  .fmv-confidence__pip--on { background: var(--fmv-warning); }
.fmv-confidence--high .fmv-confidence__pip--on { background: var(--fmv-success); }

/* ------------------------------------------------------------- callouts */

.fmv-callout {
    display: flex;
    gap: var(--fmv-space-3);
    padding: var(--fmv-space-4);
    border: 1px solid var(--fmv-line);
    border-left: 3px solid var(--fmv-neutral);
    border-radius: var(--fmv-radius);
    background: var(--fmv-surface);
}
.fmv-callout--info     { border-left-color: var(--fmv-info);     background: var(--fmv-info-soft); }
.fmv-callout--success  { border-left-color: var(--fmv-success);  background: var(--fmv-success-soft); }
.fmv-callout--warning  { border-left-color: var(--fmv-warning);  background: var(--fmv-warning-soft); }
.fmv-callout--danger   { border-left-color: var(--fmv-danger);   background: var(--fmv-danger-soft); }
.fmv-callout__title { font-weight: 600; margin-bottom: var(--fmv-space-1); }
.fmv-callout__body  { font-size: var(--fmv-text-base); }

/* --------------------------------------------------------------- tables */

.fmv-table-wrap { overflow-x: auto; }
.fmv-table { width: 100%; border-collapse: collapse; font-size: var(--fmv-text-base); }
.fmv-table th, .fmv-table td {
    padding: var(--fmv-space-3) var(--fmv-space-4);
    text-align: left;
    border-bottom: 1px solid var(--fmv-line-soft);
    vertical-align: top;
}
.fmv-table thead th {
    font-size: var(--fmv-text-xs);
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--fmv-ink-subtle);
    background: var(--fmv-surface-sunken);
    border-bottom: 1px solid var(--fmv-line);
    white-space: nowrap;
}
.fmv-table tbody tr:hover { background: var(--fmv-primary-tint); }
.fmv-table td.is-numeric, .fmv-table th.is-numeric {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------- empty states */

.fmv-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--fmv-space-3);
    padding: var(--fmv-space-12) var(--fmv-space-6);
    color: var(--fmv-ink-muted);
}
.fmv-empty__icon {
    display: grid;
    place-items: center;
    width: 44px; height: 44px;
    border-radius: var(--fmv-radius-lg);
    background: var(--fmv-surface-tint);
    color: var(--fmv-ink-subtle);
}
.fmv-empty__title { font-size: var(--fmv-text-lg); font-weight: 600; color: var(--fmv-ink); }
.fmv-empty__body  { max-width: 52ch; }

/* ------------------------------------------------------ timeline, stepper */

.fmv-timeline { position: relative; padding-left: var(--fmv-space-6); }
.fmv-timeline::before {
    content: "";
    position: absolute;
    left: 7px; top: 6px; bottom: 6px;
    width: 2px;
    background: var(--fmv-line);
}
.fmv-timeline__item { position: relative; padding-bottom: var(--fmv-space-5); }
.fmv-timeline__item:last-child { padding-bottom: 0; }
.fmv-timeline__dot {
    position: absolute;
    left: calc(var(--fmv-space-6) * -1 + 2px);
    top: 5px;
    width: 12px; height: 12px;
    border-radius: 50%;
    background: var(--fmv-surface);
    border: 2px solid var(--fmv-line-strong);
}
.fmv-timeline__dot--active { border-color: var(--fmv-primary); background: var(--fmv-primary); }
.fmv-timeline__time { font-size: var(--fmv-text-sm); color: var(--fmv-ink-subtle); }

.fmv-stepper { display: flex; flex-wrap: wrap; gap: var(--fmv-space-1); }
.fmv-stepper__step {
    display: flex;
    align-items: center;
    gap: var(--fmv-space-2);
    padding: var(--fmv-space-2) var(--fmv-space-3);
    border-radius: var(--fmv-radius);
    background: var(--fmv-surface-sunken);
    font-size: var(--fmv-text-sm);
    color: var(--fmv-ink-muted);
}
.fmv-stepper__step--done    { background: var(--fmv-success-soft); color: var(--fmv-success); }
.fmv-stepper__step--current { background: var(--fmv-primary); color: #fff; font-weight: 600; }
.fmv-stepper__index {
    display: grid;
    place-items: center;
    width: 18px; height: 18px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .08);
    font-size: var(--fmv-text-xs);
    font-weight: 700;
}

/* ----------------------------------------------------------------- tabs */

.fmv-tabs {
    display: flex;
    gap: var(--fmv-space-1);
    border-bottom: 1px solid var(--fmv-line);
    margin-bottom: var(--fmv-space-5);
    overflow-x: auto;
}
.fmv-tabs__tab {
    padding: var(--fmv-space-3) var(--fmv-space-4);
    border-bottom: 2px solid transparent;
    color: var(--fmv-ink-muted);
    font-weight: 600;
    white-space: nowrap;
}
.fmv-tabs__tab:hover { color: var(--fmv-ink); text-decoration: none; }
.fmv-tabs__tab[aria-current="page"] { color: var(--fmv-primary); border-bottom-color: var(--fmv-primary); }

/* --------------------------------------------------------- menu, switcher */

.fmv-menu { position: relative; }
.fmv-menu__trigger {
    display: flex;
    align-items: center;
    gap: var(--fmv-space-2);
    padding: var(--fmv-space-1) var(--fmv-space-3);
    min-height: 32px;
    border: 1px solid var(--fmv-line);
    border-radius: var(--fmv-radius);
    background: var(--fmv-surface);
    cursor: pointer;
}
.fmv-menu__trigger:hover { background: var(--fmv-surface-sunken); }
.fmv-menu__panel {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    min-width: 220px;
    padding: var(--fmv-space-1);
    background: var(--fmv-surface);
    border: 1px solid var(--fmv-line);
    border-radius: var(--fmv-radius);
    box-shadow: var(--fmv-shadow-lg);
    z-index: var(--fmv-z-drawer);
}
.fmv-menu__panel[hidden] { display: none; }
.fmv-menu__panel--right { left: auto; right: 0; }
.fmv-menu__item {
    display: flex;
    align-items: center;
    gap: var(--fmv-space-2);
    width: 100%;
    padding: var(--fmv-space-2) var(--fmv-space-3);
    border: 0;
    border-radius: var(--fmv-radius-sm);
    background: transparent;
    color: var(--fmv-ink);
    text-align: left;
    cursor: pointer;
}
.fmv-menu__item:hover { background: var(--fmv-surface-tint); text-decoration: none; }
.fmv-menu__item[aria-current="true"] { background: var(--fmv-primary-soft); color: var(--fmv-primary); font-weight: 600; }
.fmv-menu__sep { height: 1px; margin: var(--fmv-space-1) 0; background: var(--fmv-line-soft); }
.fmv-menu__caption {
    padding: var(--fmv-space-2) var(--fmv-space-3) var(--fmv-space-1);
    font-size: var(--fmv-text-xs);
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--fmv-ink-subtle);
}

/* --------------------------------------------------------------- toasts */

.fmv-toasts {
    position: fixed;
    right: var(--fmv-space-5);
    bottom: var(--fmv-space-5);
    display: flex;
    flex-direction: column;
    gap: var(--fmv-space-2);
    z-index: var(--fmv-z-toast);
    max-width: 380px;
}
.fmv-toast {
    display: flex;
    align-items: flex-start;
    gap: var(--fmv-space-3);
    padding: var(--fmv-space-3) var(--fmv-space-4);
    border-radius: var(--fmv-radius);
    background: var(--fmv-ink-strong);
    color: #fff;
    box-shadow: var(--fmv-shadow-lg);
}
.fmv-toast--success { background: var(--fmv-success); }
.fmv-toast--danger  { background: var(--fmv-danger); }
.fmv-toast__close {
    margin-left: auto;
    border: 0;
    background: transparent;
    color: inherit;
    opacity: .7;
    cursor: pointer;
}

/* ---------------------------------------------------------------- layout */

.fmv-grid { display: grid; gap: var(--fmv-space-4); }
.fmv-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fmv-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fmv-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fmv-grid--sidebar { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); }

.fmv-stack { display: flex; flex-direction: column; gap: var(--fmv-space-4); }
.fmv-stack--tight { gap: var(--fmv-space-2); }
.fmv-row { display: flex; align-items: center; gap: var(--fmv-space-3); flex-wrap: wrap; }
.fmv-row--between { justify-content: space-between; }

.fmv-muted   { color: var(--fmv-ink-muted); }
.fmv-subtle  { color: var(--fmv-ink-subtle); }
.fmv-small   { font-size: var(--fmv-text-sm); }
.fmv-numeric { font-variant-numeric: tabular-nums; }
.fmv-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* --------------------------------------------------------------- auth */

.fmv-auth {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: var(--fmv-space-6);
    background:
        radial-gradient(1200px 500px at 50% -10%, rgba(12, 90, 219, .10), transparent 60%),
        var(--fmv-canvas);
}
.fmv-auth__panel { width: 100%; max-width: 420px; }
.fmv-auth__brand { text-align: center; margin-bottom: var(--fmv-space-5); }
.fmv-auth__brand-mark {
    display: inline-grid;
    place-items: center;
    width: 40px; height: 40px;
    border-radius: var(--fmv-radius-lg);
    background: var(--fmv-primary);
    color: #fff;
    font-weight: 700;
    margin-bottom: var(--fmv-space-2);
}
.fmv-auth__title { font-size: var(--fmv-text-xl); font-weight: 700; color: var(--fmv-ink-strong); }
.fmv-auth__foot { margin-top: var(--fmv-space-4); text-align: center; font-size: var(--fmv-text-sm); }

/* ---------------------------------------------------------- responsive */

@media (max-width: 1100px) {
    .fmv-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fmv-grid--sidebar { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------------------------- prose

   Office reads customer-written text for the first time in phase 6: a case
   brief carries facts, findings and prior decisions in the customer's own
   words. The rules are the same as Workspace's `.fmv-prose`, minus the
   markdown-document parts Office never renders — shared vocabulary, not
   shared markup (ADR-003).
   ------------------------------------------------------------------------ */

.fmv-prose { max-width: 72ch; line-height: 1.65; }
.fmv-prose p { margin-bottom: var(--fmv-space-3); }
.fmv-prose ul { margin: 0 0 var(--fmv-space-4) var(--fmv-space-5); list-style: disc; }
.fmv-prose li { margin-bottom: var(--fmv-space-1); }
.fmv-prose code {
    font-family: var(--fmv-font-mono);
    font-size: var(--fmv-text-xs);
    background: var(--fmv-surface-sunken);
    padding: 0 var(--fmv-space-1);
    border-radius: var(--fmv-radius-sm);
}

@media (max-width: 860px) {
    .fmv-shell { flex-direction: column; }
    .fmv-sidebar {
        position: static;
        width: 100%;
        flex: none;
        height: auto;
    }
    .fmv-nav { display: flex; gap: var(--fmv-space-1); overflow-x: auto; padding: var(--fmv-space-2); }
    .fmv-nav__group + .fmv-nav__group { margin-top: 0; }
    .fmv-nav__label { display: none; }
    .fmv-nav__link { white-space: nowrap; }
    .fmv-grid--2, .fmv-grid--3, .fmv-grid--4 { grid-template-columns: minmax(0, 1fr); }
    .fmv-content { padding: var(--fmv-space-4); }
    .fmv-topbar { padding: 0 var(--fmv-space-4); }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
