/* 2026-10-30 — split sign-up / sign-in layout (onboarding refactor, step 2).
   2026-10-31: Destrier brand — navy pitch panel, sky accents (DESIGN.md "Brand").
   Left: what Destrier does + the firm's free credit (a hero: dark ink, one glow).
   Right: the form, on the app's own theme tokens.
   DESIGN.md Register 2: one primary action per screen; whitespace divides. */

/* Scrolls by itself: global.css locks html/body (overflow: hidden). */
._page_1v414_8 {
  height: 100vh;
  height: 100dvh;
  overflow-y: auto;
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  background: var(--bg);
  font-family: var(--font-body);
}

._pitch_1v414_18 {
  position: relative;
  overflow: hidden;
  background: var(--brand-navy);
  color: #fafafa;
  padding: 40px 48px;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

._glow_1v414_29 {
  position: absolute;
  right: -30%;
  top: -20%;
  width: 800px;
  height: 640px;
  background: radial-gradient(
    50% 50% at 50% 50%,
    rgba(24, 90, 189, 0.32) 0%,
    rgba(11, 27, 51, 0) 100%
  );
  pointer-events: none;
}

._brand_1v414_43 {
  position: relative;
  align-self: flex-start;
  color: inherit;
  text-decoration: none;
}

._pitchBody_1v414_50 {
  position: relative;
  margin: auto 0;
  max-width: 440px;
}

._headline_1v414_56 {
  font-family: 'DM Serif Display', Georgia, serif;
  font-weight: 400;
  font-size: 32px;
  line-height: 1.15;
  margin: 0 0 32px;
}

._points_1v414_64 {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

._point_1v414_64 {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 8px;
  font-size: 15px;
  line-height: 1.5;
  color: #d4d4d4;
}

._pointMark_1v414_82 {
  color: var(--brand-sky);
  font-weight: 600;
}

._credit_1v414_87 {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid var(--brand-navy-2);
}

._creditAmount_1v414_93 {
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 32px;
  line-height: 1.1;
  color: var(--brand-sky);
}

._creditText_1v414_100 {
  margin-top: 8px;
  font-size: 15px;
  line-height: 1.5;
  color: #d4d4d4;
}

._legal_1v414_107 {
  position: relative;
  font-size: 13px;
  color: #737373;
}

._legal_1v414_107 a {
  color: inherit;
}

._formSide_1v414_117 {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 24px;
}

._formCol_1v414_124 {
  width: 100%;
  max-width: 380px;
  color: var(--bright);
}

@media (max-width: 860px) {
  ._page_1v414_8 {
    grid-template-columns: 1fr;
  }
  ._pitch_1v414_18 {
    padding: 24px 16px 32px;
    gap: 24px;
  }
  ._headline_1v414_56 {
    font-size: 26px;
    margin-bottom: 16px;
  }
  ._points_1v414_64,
  ._legal_1v414_107 {
    display: none;
  }
  ._credit_1v414_87 {
    margin-top: 16px;
    padding-top: 16px;
  }
  ._formSide_1v414_117 {
    padding: 32px 16px;
  }
}

/* Form vocabulary shared by the auth screens (was two copies of inline styles). */
._title_1v414_156 {
  font-weight: 600;
  font-size: 28px;
  letter-spacing: -0.01em;
  margin: 0 0 8px;
  color: var(--almost-white);
}

._lead_1v414_164 {
  font-size: 15px;
  line-height: 1.55;
  color: var(--mid);
  margin: 0 0 32px;
}

._form_1v414_117 {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

._label_1v414_177 {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
  color: var(--mid);
}

._input_1v414_186 {
  font: inherit;
  font-size: 15px;
  padding: 10px 12px;
  border: 1px solid var(--chassis);
  background: var(--bg-row);
  color: var(--almost-white);
  border-radius: 6px;
}

._check_1v414_196 {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 13px;
  line-height: 1.5;
  color: var(--mid);
}

._check_1v414_196 input {
  margin-top: 3px;
}

._check_1v414_196 a,
._link_1v414_210 {
  color: var(--almost-white);
}

._primary_1v414_214 {
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  padding: 12px 16px;
  margin-top: 8px;
  border: none;
  border-radius: 6px;
  background: var(--almost-white);
  color: var(--bg);
  cursor: pointer;
}

._primary_1v414_214:disabled {
  opacity: 0.5;
  cursor: default;
}

._textBtn_1v414_232 {
  font: inherit;
  font-size: 13px;
  background: none;
  border: none;
  padding: 0;
  color: var(--mid);
  text-decoration: underline;
  cursor: pointer;
  align-self: flex-start;
}

._err_1v414_244 {
  font-size: 13px;
  color: var(--sev-crit);
  margin: 0;
}

._ok_1v414_250 {
  font-size: 13px;
  color: var(--sev-ok);
  margin: 0;
}

._small_1v414_256 {
  font-size: 13px;
  color: var(--dim);
  margin-top: 24px;
}
/* 2026-10-30 — onboarding refactor: shared styles for the new app surfaces
   (dashboard, setup progress, project overview). DESIGN.md Register 2:
   neutral 90% of the time, one primary action per screen, whitespace divides,
   8px grid, one radius (6px), four type sizes (28 / 18 / 15 / 13). */

/* The page scrolls inside the shell: global.css locks html/body/#root
   (overflow: hidden, a run-canvas leftover), so a screen taller than the
   window was cut off (2026-10-31: Continue unreachable on "New review"). */
/* 2026-10-31 (Arnaud: "when I scroll, the top bar disappears"): the shell no
   longer scrolls. The top bar stays put; the area under it (.main here,
   setup's .layout, overview's .scroller) is the full-width scroll area. */
._shell_1368o_12 {
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--bg);
  color: var(--bright);
  font-family: var(--font-body);
}

/* ---- top bar ---- */
._header_1368o_24 {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 56px;
  padding: 0 24px;
  border-bottom: 1px solid var(--grid-line);
  flex-shrink: 0;
  /* view-transition-name (AppHeader) makes the header its own stacking context,
     so its dropdowns (Export, account) only stack inside it: without a z-index
     the page's positioned layers (the reader's columns, z 2; wires, z 5) paint
     over them and take the clicks. Above those, below the overlays (hover
     card 40, drop overlay / selection Comment 50). */
  position: relative;
  z-index: 35;
}

/* A quiet icon button in the header, like ThemeToggle (Cookie settings). */
._headerIconBtn_1368o_42 {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: var(--mid);
  cursor: pointer;
}

._brand_1368o_55 {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-brand);
  font-size: 20px;
  color: var(--almost-white);
  text-decoration: none;
}

._crumbs_1368o_65 {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  font-size: 15px;
  color: var(--mid);
}

._crumbs_1368o_65 a {
  color: var(--mid);
  text-decoration: none;
}

._crumbs_1368o_65 a:hover {
  color: var(--almost-white);
}

._crumbSep_1368o_83 {
  color: var(--dim);
}

._crumbCurrent_1368o_87 {
  color: var(--almost-white);
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._headerSpacer_1368o_95 {
  flex: 1;
}

._headerRight_1368o_99 {
  display: flex;
  align-items: center;
  gap: 16px;
}

/* ---- page ---- */
._main_1368o_10 {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  width: 100%;
  /* same 992 px content column as before, centred by padding so the scroll
     bar sits at the window edge rather than beside the column */
  padding: 40px max(24px, calc((100% - 992px) / 2)) 64px;
  box-sizing: border-box;
}

._titleRow_1368o_117 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 32px;
}

._title_1368o_117 {
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.01em;
  margin: 0;
  color: var(--almost-white);
}

._lead_1368o_133 {
  font-size: 15px;
  line-height: 1.55;
  color: var(--mid);
  margin: 8px 0 0;
}

/* ---- buttons ---- */
._primary_1368o_141,
._secondary_1368o_142 {
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  padding: 10px 20px;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
}

._primary_1368o_141 {
  border: 1px solid var(--almost-white);
  background: var(--almost-white);
  color: var(--bg);
}

._secondary_1368o_142 {
  border: 1px solid var(--chassis);
  background: transparent;
  color: var(--almost-white);
}

._primary_1368o_141:disabled,
._secondary_1368o_142:disabled {
  opacity: 0.5;
  cursor: default;
}

._textBtn_1368o_170 {
  font: inherit;
  font-size: 13px;
  background: none;
  border: none;
  padding: 0;
  color: var(--mid);
  cursor: pointer;
  text-decoration: underline;
}

._textBtn_1368o_170:hover {
  color: var(--almost-white);
}

._input_1368o_185 {
  font: inherit;
  font-size: 15px;
  padding: 10px 12px;
  border: 1px solid var(--chassis);
  background: var(--bg-row);
  color: var(--almost-white);
  border-radius: 6px;
  box-sizing: border-box;
}

._err_1368o_196 {
  font-size: 13px;
  color: var(--sev-crit);
  margin: 16px 0 0;
}

/* ---- dropzone ---- */
._drop_1368o_203 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 360px;
  padding: 40px 24px;
  border: 1.5px dashed var(--chassis);
  border-radius: 6px;
  text-align: center;
  transition: border-color 150ms, background 150ms;
}

._dropActive_1368o_217 {
  border-color: var(--almost-white);
  background: var(--bg-row);
}

._dropIcon_1368o_222 {
  color: var(--dim);
}

._dropTitle_1368o_226 {
  font-size: 18px;
  font-weight: 600;
  color: var(--almost-white);
  margin: 0;
}

._dropHint_1368o_233 {
  font-size: 15px;
  color: var(--mid);
  margin: 0;
}

._sampleLine_1368o_239 {
  margin-top: 24px;
  text-align: center;
  font-size: 13px;
  color: var(--mid);
}

/* full-page drop overlay (when projects already exist) */
._dropOverlay_1368o_247 {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  border: 2px dashed var(--almost-white);
  font-size: 18px;
  font-weight: 600;
  color: var(--almost-white);
  pointer-events: none;
}

/* ---- staged documents grid (choose the reference) ---- */
._nameField_1368o_263 {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 480px;
  margin-bottom: 32px;
  font-size: 13px;
  font-weight: 500;
  color: var(--mid);
}

._gridLabel_1368o_274 {
  font-size: 13px;
  font-weight: 500;
  color: var(--mid);
  margin: 0 0 16px;
}

._docGrid_1368o_281 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 24px;
}

._docCard_1368o_287 {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  text-align: left;
  color: inherit;
  cursor: pointer;
}

._docCard_1368o_287:disabled {
  cursor: default;
}

._page_1368o_305 {
  position: relative;
  aspect-ratio: 210 / 297;
  border-radius: 6px;
  background: var(--bg-row);
  border: 1px solid var(--grid-line);
  padding: 16px 14px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 6px;
  overflow: hidden;
  transition: border-color 150ms, box-shadow 150ms;
}

._docCard_1368o_287:hover ._page_1368o_305 {
  border-color: var(--chassis);
}

._pageRef_1368o_324 {
  border-color: var(--almost-white);
  box-shadow: 0 0 0 1px var(--almost-white);
}

._docCard_1368o_287:hover ._pageRef_1368o_324 {
  border-color: var(--almost-white);
}

._sketch_1368o_333 {
  position: absolute;
  inset: 0;
  padding: 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

._fileType_1368o_342,
._refBadge_1368o_343,
._removeBtn_1368o_344 {
  z-index: 1;
}

._line_1368o_348 {
  height: 3px;
  border-radius: 2px;
  background: var(--grid-line);
}

._fileType_1368o_342 {
  position: absolute;
  left: 12px;
  bottom: 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 2px 6px;
  border-radius: 4px;
  background: var(--bg-soft);
  color: var(--mid);
}

._refBadge_1368o_343 {
  position: absolute;
  top: 8px;
  left: 8px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  background: var(--almost-white);
  color: var(--bg);
}

._removeBtn_1368o_344 {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 24px;
  height: 24px;
  display: none;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  border: none;
  background: var(--bg-soft);
  color: var(--mid);
  cursor: pointer;
}

._docCard_1368o_287:hover ._removeBtn_1368o_344 {
  display: flex;
}

._docName_1368o_399 {
  font-size: 13px;
  font-weight: 500;
  color: var(--almost-white);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._docMeta_1368o_408 {
  font-size: 13px;
  color: var(--dim);
  margin-top: -4px;
}

._addTile_1368o_414 {
  aspect-ratio: 210 / 297;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1.5px dashed var(--chassis);
  border-radius: 6px;
  color: var(--mid);
  font-size: 13px;
  cursor: pointer;
}

._addTile_1368o_414:hover {
  color: var(--almost-white);
  border-color: var(--almost-white);
}

._footerBar_1368o_433 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid var(--grid-line);
}

._footerHint_1368o_443 {
  font-size: 13px;
  color: var(--mid);
}

/* ---- projects list ---- */
._projects_1368o_449 {
  display: flex;
  flex-direction: column;
}

._projectRow_1368o_454 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 96px 160px 112px 72px;
  align-items: center;
  gap: 16px;
  padding: 16px 8px;
  border-bottom: 1px solid var(--grid-line);
  font-size: 15px;
  color: var(--bright);
  text-decoration: none;
  cursor: pointer;
}

._projectRow_1368o_454:hover {
  background: var(--bg-row);
}

._projectHead_1368o_471 {
  cursor: default;
  font-size: 13px;
  color: var(--dim);
  padding-top: 0;
}

._projectHead_1368o_471:hover {
  background: none;
}

._projectName_1368o_482 {
  font-weight: 500;
  color: var(--almost-white);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._muted_1368o_490 {
  color: var(--mid);
  font-size: 13px;
}

._num_1368o_495 {
  font-variant-numeric: tabular-nums;
  text-align: right;
}

._status_1368o_500 {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--mid);
}

._statusDot_1368o_508 {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--chassis);
}

._statusDone_1368o_515 {
  background: var(--sev-ok);
}

._statusRunning_1368o_519 {
  background: var(--sev-info);
}

._tag_1368o_523 {
  margin-left: 8px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 4px;
  background: var(--bg-soft);
  color: var(--mid);
}

._rowActions_1368o_533 {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
  opacity: 0;
}

._projectRow_1368o_454:hover ._rowActions_1368o_533,
._rowActions_1368o_533:focus-within {
  opacity: 1;
}

._iconBtn_1368o_545 {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 6px;
  background: none;
  color: var(--mid);
  cursor: pointer;
}

._iconBtn_1368o_545:hover {
  background: var(--bg-soft);
  color: var(--almost-white);
}

._renameInput_1368o_563 {
  font: inherit;
  font-size: 15px;
  padding: 4px 8px;
  border: 1px solid var(--chassis);
  background: var(--bg-row);
  color: var(--almost-white);
  border-radius: 6px;
  width: 100%;
  box-sizing: border-box;
}

@media (max-width: 720px) {
  ._header_1368o_24 {
    padding: 0 16px;
  }
  ._main_1368o_10 {
    padding: 24px 16px 48px;
  }
  ._projectRow_1368o_454 {
    grid-template-columns: minmax(0, 1fr) 112px;
  }
  ._hideSm_1368o_585 {
    display: none;
  }
  ._rowActions_1368o_533 {
    display: none;
  }
}

._focusInput_1368o_593 {
  resize: vertical;
  min-height: 56px;
  line-height: 1.5;
}

/* Example text must not read as a value (dark mode made it near-white). */
._input_1368o_185::-moz-placeholder {
  color: var(--dim);
  opacity: 1;
}
._input_1368o_185::placeholder {
  color: var(--dim);
  opacity: 1;
}

/* 2026-10-31 — "Anonymize names before the review" (New review, accounts) */
._checkField_1368o_606 {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  max-width: 480px;
  margin-bottom: 32px;
  font-size: 13px;
  font-weight: 500;
  color: var(--bright);
  cursor: pointer;
}

._checkField_1368o_606 input {
  margin-top: 2px;
  accent-color: var(--brand-blue);
}

._checkHint_1368o_623 {
  display: block;
  margin-top: 4px;
  font-weight: 400;
  color: var(--mid);
  line-height: 1.45;
}
/* 2026-10-30 — onboarding refactor, step 4: the project progress screen
   (Stripe-onboarding shape). Left: the progress rail. Right: the current
   step's panel, its one action bottom-right with the price next to it.
   DESIGN.md Register 2 — one primary action per screen; motion is feedback. */

/* 2026-10-31: .layout is the page's scroll area (the top bar above it stays
   put); the rail stays in view while the panel scrolls; the panel's sticky
   .footer pins to the bottom of this area. */
._layout_hv64f_6 {
  flex: 1;
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  width: 100%;
  min-height: 0;
  overflow-y: auto;
  padding-inline: max(0px, calc((100% - 1200px) / 2));
  box-sizing: border-box;
}

/* ---- rail ---- */
._rail_hv64f_21 {
  position: sticky;
  top: 0;
  align-self: start;
  padding: 40px 32px 40px 24px;
}

._railTitle_hv64f_28 {
  font-size: 18px;
  font-weight: 600;
  color: var(--almost-white);
  margin: 0 0 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._railSub_hv64f_38 {
  font-size: 13px;
  color: var(--mid);
  margin: 0 0 32px;
}

._steps_hv64f_44 {
  list-style: none;
  margin: 0;
  padding: 0;
}

._step_hv64f_44 {
  position: relative;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  gap: 12px;
  padding-bottom: 24px;
}

/* the connecting line between markers */
._step_hv64f_44:not(:last-child)::before {
  content: '';
  position: absolute;
  left: 11px;
  top: 26px;
  bottom: 2px;
  width: 2px;
  background: var(--grid-line);
}

._stepDone_hv64f_69:not(:last-child)::before {
  background: var(--almost-white);
}

._marker_hv64f_73 {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  border: 2px solid var(--chassis);
  background: var(--bg);
  color: var(--bg);
  position: relative;
  z-index: 1;
}

._markerDone_hv64f_88 {
  border-color: var(--almost-white);
  background: var(--almost-white);
}

._markerAction_hv64f_93 {
  border-color: var(--almost-white);
}

._markerAction_hv64f_93::after {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--almost-white);
}

._markerError_hv64f_105 {
  border-color: var(--sev-crit);
  background: var(--sev-crit);
}

._spinner_hv64f_110 {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  box-sizing: border-box;
  border: 2px solid var(--grid-line);
  border-top-color: var(--almost-white);
  animation: _spin_hv64f_110 900ms linear infinite;
  position: relative;
  z-index: 1;
  background: var(--bg);
}

._spinnerSm_hv64f_123 {
  width: 14px;
  height: 14px;
  border-width: 2px;
}

@keyframes _spin_hv64f_110 {
  to {
    transform: rotate(360deg);
  }
}

._stepLabel_hv64f_135 {
  font-size: 15px;
  line-height: 24px;
  color: var(--mid);
}

._stepLabelActive_hv64f_141 {
  color: var(--almost-white);
  font-weight: 600;
}

._stepLabelDone_hv64f_146 {
  color: var(--bright);
}

._stepCost_hv64f_150 {
  font-size: 13px;
  line-height: 24px;
  color: var(--dim);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

._subSteps_hv64f_158 {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

._subStep_hv64f_158 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--dim);
}

._subDone_hv64f_175 {
  color: var(--mid);
}

._subActive_hv64f_179 {
  color: var(--almost-white);
}

._subIcon_hv64f_183 {
  width: 14px;
  height: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

._subDot_hv64f_192 {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--chassis);
}

/* ---- panel ---- */
._panel_hv64f_200 {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border-left: 1px solid var(--grid-line); /* was the rail's right border; the rail no longer spans the page height */
}

._panelBody_hv64f_207 {
  flex: 1;
  padding: 40px 48px 32px;
  max-width: 760px;
}

._eyebrow_hv64f_213 {
  font-size: 13px;
  color: var(--mid);
  margin: 0 0 8px;
}

._panelTitle_hv64f_219 {
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--almost-white);
  margin: 0 0 8px;
}

._panelLead_hv64f_227 {
  font-size: 15px;
  line-height: 1.55;
  color: var(--mid);
  margin: 0 0 32px;
  max-width: 600px;
}

._section_hv64f_235 {
  margin-bottom: 32px;
}

._sectionTitle_hv64f_239 {
  font-size: 13px;
  font-weight: 600;
  color: var(--mid);
  margin: 0 0 12px;
}

._docLine_hv64f_246 {
  display: flex;
  align-items: baseline;
  gap: 12px;
  font-size: 15px;
  color: var(--bright);
  padding: 4px 0;
}

._docRole_hv64f_255 {
  font-size: 13px;
  color: var(--dim);
  width: 88px;
  flex-shrink: 0;
}

._chips_hv64f_262 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

._chip_hv64f_262 {
  font-size: 13px;
  padding: 4px 10px;
  border-radius: 6px;
  background: var(--bg-row);
  border: 1px solid var(--grid-line);
  color: var(--bright);
}

._stepList_hv64f_277 {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

._stepItem_hv64f_285 {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--grid-line);
}

._stepItem_hv64f_285:last-child {
  border-bottom: none;
}

._stepNum_hv64f_297 {
  font-size: 13px;
  color: var(--dim);
  font-variant-numeric: tabular-nums;
  line-height: 22px;
}

._stepName_hv64f_304 {
  font-size: 15px;
  font-weight: 500;
  color: var(--almost-white);
}

._stepGoal_hv64f_310 {
  font-size: 13px;
  line-height: 1.5;
  color: var(--mid);
  margin-top: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

._stepState_hv64f_321 {
  font-size: 13px;
  color: var(--mid);
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  line-height: 22px;
}

._bar_hv64f_331 {
  height: 4px;
  border-radius: 2px;
  background: var(--grid-line);
  overflow: hidden;
  margin: 0 0 24px;
}

._barFill_hv64f_339 {
  height: 100%;
  background: var(--almost-white);
  transition: width 250ms ease;
}

._select_hv64f_345 {
  font: inherit;
  font-size: 15px;
  padding: 8px 12px;
  border: 1px solid var(--chassis);
  border-radius: 6px;
  background: var(--bg-row);
  color: var(--almost-white);
  max-width: 100%;
}

._hint_hv64f_356 {
  font-size: 13px;
  color: var(--dim);
  margin-top: 8px;
}

._sevRow_hv64f_362 {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
}

._sevCount_hv64f_368 {
  font-size: 28px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--almost-white);
}

._sevLabel_hv64f_375 {
  font-size: 13px;
  color: var(--mid);
  display: flex;
  align-items: center;
  gap: 8px;
}

._sevDot_hv64f_383 {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

._notice_hv64f_389 {
  font-size: 15px;
  line-height: 1.55;
  color: var(--bright);
  padding: 12px 16px;
  border-radius: 6px;
  background: var(--bg-row);
  border-left: 3px solid var(--sev-major);
  margin-bottom: 24px;
}

._noticeErr_hv64f_400 {
  border-left-color: var(--sev-crit);
}

._choice_hv64f_404 {
  display: flex;
  gap: 8px;
}

._choiceBtn_hv64f_409 {
  font: inherit;
  font-size: 13px;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid var(--chassis);
  background: none;
  color: var(--mid);
  cursor: pointer;
}

._choiceOn_hv64f_420 {
  border-color: var(--almost-white);
  color: var(--almost-white);
  font-weight: 600;
}

/* ---- footer: status left, price + the one action right ---- */
._footer_hv64f_8 {
  position: sticky;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 48px;
  border-top: 1px solid var(--grid-line);
  background: var(--bg);
}

._footerStatus_hv64f_439 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--mid);
  min-width: 0;
}

._footerRight_hv64f_448 {
  display: flex;
  align-items: center;
  gap: 16px;
}

._price_hv64f_454 {
  font-size: 15px;
  color: var(--bright);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

._priceBlock_hv64f_461 {
  color: var(--sev-crit);
}

@media (max-width: 860px) {
  ._layout_hv64f_6 {
    grid-template-columns: 1fr;
  }
  ._rail_hv64f_21 {
    border-right: none;
    border-bottom: 1px solid var(--grid-line);
    padding: 24px 16px 8px;
  }
  ._panelBody_hv64f_207 {
    padding: 24px 16px;
  }
  ._footer_hv64f_8 {
    padding: 12px 16px;
  }
}

/* Rewrite the plan (#5): secondary to Launch, under the step list. */
._rewriteLink_hv64f_483 {
  margin: 16px 0 0;
}

._rewrite_hv64f_483 {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

._rewriteText_hv64f_494 {
  width: 100%;
  resize: vertical;
  font-size: 13px;
  line-height: 1.6;
}

._rewriteActions_hv64f_501 {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
}

._rewriteActions_hv64f_501 > :first-child {
  margin-right: auto;
}

/* Plan check, short and to the point (2026-10-31): one-line goals, categories
   as one line instead of a block of chips. */
._stepGoal_hv64f_310 {
  -webkit-line-clamp: 1 !important;
}

._catLine_hv64f_518 {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--mid);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* 2026-10-30 — onboarding refactor, step 5: project overview. Every page of
   every document, findings drawn as highlighter strokes (colour = severity).
   DESIGN.md: colour only on status; the page sketch stays neutral grey. */

._wrap_1rcfz_5 {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 32px 24px 0;
  box-sizing: border-box;
}

._top_1rcfz_17 {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

._title_1rcfz_26 {
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--almost-white);
  margin: 0 0 8px;
}

._legend_1rcfz_34 {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  font-size: 13px;
  color: var(--mid);
}

._legendItem_1rcfz_42 {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-variant-numeric: tabular-nums;
  /* a toggle: click hides / shows that severity on the pages */
  padding: 4px 8px;
  margin: -4px -8px;
  border: none;
  border-radius: 6px;
  background: none;
  font: inherit;
  font-size: 13px;
  color: var(--mid);
  cursor: pointer;
}

._legendItem_1rcfz_42:hover {
  background: var(--bg-row);
  color: var(--almost-white);
}

._legendOff_1rcfz_64 {
  color: var(--dim);
}

._legendOff_1rcfz_64 ._swatch_1rcfz_68 {
  opacity: 0.2 !important;
}

._swatch_1rcfz_68 {
  width: 16px;
  height: 8px;
  border-radius: 2px;
}

._scroller_1rcfz_78 {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding-bottom: 32px;
}

._docHead_1rcfz_85 {
  display: flex;
  align-items: baseline;
  gap: 12px;
  height: 40px;
  font-size: 15px;
  font-weight: 600;
  color: var(--almost-white);
}

._docMeta_1rcfz_95 {
  font-size: 13px;
  font-weight: 400;
  color: var(--dim);
}

._pages_1rcfz_101 {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  margin-bottom: 16px;
}

._page_1rcfz_101 {
  --page-line: var(--chassis);
  position: relative;
  box-sizing: border-box;
  background: var(--bg-row);
  border: 1px solid var(--grid-line);
  border-radius: 3px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  cursor: pointer;
  transition: border-color 150ms, transform 150ms;
}

._page_1rcfz_101:hover,
._pageActive_1rcfz_123 {
  border-color: var(--almost-white);
}

._para_1rcfz_127 {
  position: relative;
  flex-shrink: 0;
}

/* grey text texture: horizontal lines, like a page seen from afar */
._text_1rcfz_133 {
  position: absolute;
  inset: 0;
  opacity: 0.55;
}

/* the highlighter stroke over a paragraph with findings */
._mark_1rcfz_140 {
  position: absolute;
  inset: -1px -3% -1px -3%;
  border-radius: 2px 6px 3px 7px;
  opacity: 0.42;
  mix-blend-mode: multiply;
}

:root:not([data-theme='light']) ._mark_1rcfz_140 {
  mix-blend-mode: screen;
  opacity: 0.5;
}

._pageNum_1rcfz_153 {
  position: absolute;
  right: 4px;
  bottom: 2px;
  font-size: 11px;
  color: var(--dim);
  font-variant-numeric: tabular-nums;
}

/* hover card */
._card_1rcfz_163 {
  position: fixed;
  z-index: 40;
  width: 340px;
  max-width: calc(100vw - 32px);
  padding: 16px;
  border-radius: 6px;
  background: var(--bg);
  border: 1px solid var(--chassis);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  pointer-events: none;
}

._cardHead_1rcfz_176 {
  font-size: 13px;
  color: var(--mid);
  margin-bottom: 12px;
}

._cardItem_1rcfz_182 {
  display: grid;
  grid-template-columns: 8px 1fr;
  gap: 8px;
  align-items: baseline;
  font-size: 13px;
  line-height: 1.45;
  color: var(--bright);
  margin-bottom: 8px;
}

._cardDot_1rcfz_193 {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  transform: translateY(1px);
}

._cardMore_1rcfz_200,
._cardHint_1rcfz_201 {
  font-size: 13px;
  color: var(--dim);
}

._cardHint_1rcfz_201 {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--grid-line);
}

@media (max-width: 720px) {
  ._wrap_1rcfz_5 {
    padding: 24px 16px 0;
  }
}

/* 2026-10-30 — a highlight is its own target: hover = its finding, click = open it */
._mark_1rcfz_140 {
  cursor: pointer;
  transition: opacity 150ms;
}

/* hovered highlight: a lighter, brighter stroke (the finding the card shows) */
._mark_1rcfz_140:hover {
  filter: brightness(1.45) saturate(1.15);
}

._cardSev_1rcfz_229 {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--mid);
}

._cardTitle_1rcfz_238 {
  display: block;
  font-weight: 600;
  color: var(--almost-white);
  margin-top: 2px;
}

._cardBody_1rcfz_245 {
  display: block;
  margin-top: 4px;
  color: var(--mid);
}

/* 2026-10-30 — dark mode: the pages sat almost black on black. A lifted page
   surface, a visible edge and lighter text lines, like paper under a lamp. */
:root:not([data-theme='light']) ._page_1rcfz_101 {
  --page-line: var(--mid);
  background: var(--bg-row-hi);
  border-color: var(--chassis);
}

:root:not([data-theme='light']) ._page_1rcfz_101:hover,
:root:not([data-theme='light']) ._pageActive_1rcfz_123 {
  border-color: var(--almost-white);
}

/* Legend filter: the selected severity reads as pressed, the others recede. */
._legendOn_1rcfz_265 {
  background: var(--bg-row);
  color: var(--almost-white);
  font-weight: 600;
}

/* Hovering a highlight: every anchor of that finding lights up (lighter,
   brighter), on every page of every document; the other highlights fade and
   the pages that carry the finding are outlined. */
._markHot_1rcfz_274 {
  filter: brightness(1.45) saturate(1.15);
  opacity: 0.85 !important;
}

._markCold_1rcfz_279 {
  opacity: 0.12 !important;
}

._pageHot_1rcfz_283 {
  border-color: var(--almost-white);
  box-shadow: 0 0 0 1px var(--almost-white);
}

/* 2026-10-31 — each highlight's hit area reaches a few px past its stroke, so
   the 2px gap between two stacked highlights still belongs to a finding (it
   fell through to the page, which listed every finding on it). */
._mark_1rcfz_140::before {
  content: '';
  position: absolute;
  inset: -3px -2px;
}

/* The card holds titles only: one weight, no label line. */
._card_1rcfz_163 ._cardTitle_1rcfz_238 {
  margin-top: 0;
  font-weight: 500;
}

._card_1rcfz_163 ._cardItem_1rcfz_182:last-child {
  margin-bottom: 0;
}

/* 2026-10-31 — real miniature pages (Arnaud: "real content of the pages"):
   an A4 sheet (794 x 1123 px) with the real text, scaled into the thumbnail. */
._page_1rcfz_101 {
  padding: 0;
}

._paper_1rcfz_313 {
  position: absolute;
  top: 0;
  left: 0;
  width: 794px;
  height: 1123px;
  padding: 76px 84px;
  box-sizing: border-box;
  transform-origin: top left;
  overflow: hidden;
}

._paperText_1rcfz_325 {
  font-family: var(--font-serif, 'Source Serif 4', Georgia, serif);
  line-height: 1.38;
  color: var(--bright);
  text-align: justify;
}

._pp_1rcfz_332 {
  position: relative;
  margin: 0 0 0.55em;
  overflow-wrap: anywhere;
}

._ppH1_1rcfz_338 {
  font-size: 1.35em;
  font-weight: 600;
  margin: 0.4em 0 0.6em;
  text-align: left;
}

._ppH2_1rcfz_345 {
  font-size: 1.15em;
  font-weight: 600;
  text-align: left;
}

._ppBold_1rcfz_351 {
  font-weight: 600;
  text-align: left;
}

._ppCenter_1rcfz_356 {
  text-align: center;
}

._ppRow_1rcfz_360 {
  display: flex;
  gap: 0;
  margin: 0;
  font-size: 0.85em;
  border-bottom: 1px solid var(--chassis);
}

._cell_1rcfz_368 {
  flex: 1;
  padding: 0.2em 0.4em;
  border-left: 1px solid var(--chassis);
}

._cell_1rcfz_368:first-child {
  border-left: none;
}

/* the paragraph's severity stroke, over its real text */
._pp_1rcfz_332 ._mark_1rcfz_140 {
  inset: -0.1em -0.6em;
  min-height: var(--minmark, 3px);
}

/* its hit area: a few screen px past the stroke at any zoom */
._pp_1rcfz_332 ._mark_1rcfz_140::before {
  inset: calc(-1 * var(--hit, 3px)) -2px;
}

/* the exact passage a finding is about, stronger than the stroke */
._qmark_1rcfz_390 {
  color: inherit;
  border-radius: 2px;
  padding: 0 0.1em;
  opacity: 0.85;
}

/* #9 — findings that cite no passage, above the documents */
._general_1rcfz_398 {
  margin-bottom: 16px;
}

/* A finding marked reviewed in reading mode: a small green tick after its title. */
._reviewedTick_1rcfz_403 {
  display: inline-flex;
  margin-left: 6px;
  color: var(--sev-ok);
  vertical-align: -1px;
}

/* Free-review page cap: one quiet line under the legend (ReviewScopeNote). */
._scopeNote_1rcfz_411 {
  margin: 10px 0 0;
  font-size: 13px;
  color: var(--dim);
}

/* Guest trial: the claim card keeps a form width (the scroller is full-bleed). */
._claim_1rcfz_418 {
  max-width: 560px;
  margin-bottom: 32px;
}

._generalList_1rcfz_423 {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

._generalItem_1rcfz_432 {
  display: grid;
  grid-template-columns: 8px 1fr;
  gap: 8px;
  align-items: baseline;
  width: 100%;
  max-width: 760px;
  padding: 4px 8px;
  margin-left: -8px;
  border: none;
  border-radius: 6px;
  background: none;
  font: inherit;
  font-size: 13px;
  line-height: 1.45;
  text-align: left;
  color: var(--bright);
  cursor: pointer;
}

._generalItem_1rcfz_432:hover {
  background: var(--bg-row);
}

/* 2026-10-31 — PDF pages: the real page image, the strokes on each paragraph's
   exact box (placed in page fractions by Overview.PdfSheet). */
._sheet_1rcfz_458 {
  position: absolute;
}

._sheetImg_1rcfz_462 {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

/* dark mode: the paper turns dark like the Word pages (and the screen-blended
   strokes stay visible on it) */
:root:not([data-theme='light']) ._sheetImg_1rcfz_462 {
  filter: invert(0.9) hue-rotate(180deg);
}

._sheet_1rcfz_458 ._mark_1rcfz_140 {
  min-height: 3px;
}
/* 2026-10-13 — one type family in the reader (Arnaud: "why 10 different fonts"):
 * DM Sans everywhere, sentence-case headings, three sizes (15 text / 14 findings /
 * 12-13 chrome). Only the severity labels stay small caps.
 * 2026-10-13 — Arnaud: "boxes in boxes in boxes" in reading mode. Frames removed:
 * findings are hairline-separated rows, severities/refs are plain coloured text,
 * toolbar controls are frameless (fields keep an underline).
 * DESIGN.md Register 2: "lines, not boxes"; hierarchy through space and weight. */
/* reader.module.css — Register 2 (chrome + reading surface). Calm, restrained,
 * deletion-is-design. Serif justified body (the lawyer layer), numbers mono
 * right-aligned. Light/dark entirely via the existing global.css CSS vars —
 * no component reads the theme directly. 8px spacing base. */

._shell_5wntb_13 {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: var(--bg);
  color: var(--bright);
  display: flex;
  flex-direction: column;
  font-family: var(--font-body);
}

._header_5wntb_24 {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 20px;
  border-bottom: 1px solid var(--chassis);
  flex-shrink: 0;
  /* 2026-07-22 (Arnaud "still can't close it") — truncating the title alone
     wasn't enough: an unconstrained bucket-filter <select> (sizes to its
     longest option) plus a header full of un-shrinkable controls could still
     overflow the viewport width with no way to reach the trailing controls.
     Let the header scroll horizontally as a fallback (nothing is ever
     silently lost) — the closeBtn below is ALSO pinned via position:sticky
     so it never requires scrolling to reach regardless of what else overflows. */
  overflow-x: auto;
  overflow-y: hidden;
}

._headerTitle_5wntb_42 {
  font-size: 13px;
  font-weight: 600;
  color: var(--bright);
  /* 2026-07-22 (Arnaud "reading mode ugly, can't close it") — a long principal
     doc name (e.g. "Contrat d'Émission Obligataire Unitranche (Unitranche
     Bonds Facilities Agreement)") had no shrink/truncation, so it grew past
     the header's width and pushed the close button out of the visible row.
     Truncate with ellipsis instead of letting it crowd out the rest of the
     header controls. */
  max-width: 30ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex-shrink: 0;
}

._headerMeta_5wntb_59 {
  font-size: 12px;
  color: var(--dim);
}

._headerSpacer_5wntb_64 {
  flex: 1;
}

/* Bucket filter selector — restrained Register-2 chrome (one accent, no box noise). */
._bucketSelect_5wntb_69 {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--chassis);
  color: var(--bright);
  font-family: inherit;
  font-size: 12px;
  padding: 4px 2px;
  cursor: pointer;
  /* An unconstrained <select> sizes to its longest option text — a long
     bucket label could make this eat most of the header's width. Cap it. */
  max-width: 160px;
  flex-shrink: 0;
}
._bucketSelect_5wntb_69:hover {
  border-bottom-color: var(--mid);
}

/* Severity FILTER pills (header) — colour = the severity; struck-through when off.
   Named distinctly from the card .sevPill to avoid a CSS-module name collision. */
._sevPills_5wntb_89 {
  display: flex;
  gap: 4px;
}
._sevFilterPill_5wntb_93 {
  background: transparent;
  border: none;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 2px 5px;
  cursor: pointer;
  opacity: 0.95;
}
._sevFilterPillOff_5wntb_104 {
  opacity: 0.35;
  text-decoration: line-through;
}

/* PREV / NEXT finding nav. */
._navGroup_5wntb_110 {
  display: flex;
  align-items: center;
  gap: 6px;
}
._navBtn_5wntb_115 {
  background: transparent;
  border: none;
  border-radius: 4px;
  color: var(--mid);
  width: 22px;
  height: 22px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  font-family: inherit;
}
._navBtn_5wntb_115:hover {
  color: var(--bright);
  background: var(--wash-row-hover);
}
._navCount_5wntb_131 {
  font-size: 11px;
  color: var(--dim);
  font-variant-numeric: tabular-nums;
  min-width: 36px;
  text-align: center;
}

/* Aller-à jump input. */
._gotoInput_5wntb_140 {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--chassis);
  color: var(--bright);
  font-family: inherit;
  font-size: 12px;
  padding: 4px 2px;
  width: 96px;
}
._gotoInput_5wntb_140:focus {
  outline: none;
  border-bottom-color: var(--mid);
}
._gotoMiss_5wntb_154 {
  border-bottom-color: var(--sev-crit);
  color: var(--sev-crit);
}

/* DEF toggle. */
._defToggle_5wntb_160 {
  background: transparent;
  border: none;
  color: var(--dim);
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  padding: 3px 8px;
  cursor: pointer;
}
._defToggleOn_5wntb_170 {
  color: var(--sev-crit);
}

._closeBtn_5wntb_174 {
  background: var(--bg);
  border: none;
  border-radius: 4px;
  color: var(--mid);
  width: 26px;
  height: 26px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  font-family: inherit;
  /* Never let header overflow push the close control out of reach — it's
     the one thing that must always stay clickable. Sticky-pinned to the
     right edge of the (now horizontally-scrollable) header, so it's always
     visible without scrolling no matter how many controls overflow. */
  flex-shrink: 0;
  position: sticky;
  right: 0;
  z-index: 1;
}
._closeBtn_5wntb_174:hover {
  color: var(--bright);
  background: var(--wash-row-hover);
}

/* The wire stage — position:relative so the SVG overlays anchor to it. */
._stage_5wntb_200 {
  position: relative;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

._columns_5wntb_207 {
  position: relative;
  z-index: 2; /* panes ABOVE the behind-wires layer */
  display: grid;
  height: 100%;
  gap: 0; /* the 8px gutters are now the resize handles */
  background: var(--bg-soft);
}

/* ---- Document column (annex or principal) ---- */
._docColumn_5wntb_217 {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: var(--bg); /* opaque: occludes the behind-wires under text */
}

._colHeader_5wntb_224 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 10px 16px;
  border-bottom: 1px solid var(--chassis);
  flex-shrink: 0;
}
._colTitle_5wntb_232 {
  font-size: 13px;
  font-weight: 600;
  color: var(--bright);
}
._colCount_5wntb_237 {
  font-family: var(--font-body);
  font-variant-numeric: tabular-nums;
  font-size: 10px;
  color: var(--dim);
}

._colBody_5wntb_244 {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 12px 16px 40vh; /* bottom pad so the last clause can reach center */
}

/* ---- Annex tab strip (left) ---- */
._annexStrip_5wntb_252 {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: var(--bg);
}
._tabRow_5wntb_258 {
  display: flex;
  gap: 2px;
  padding: 8px 10px 0;
  border-bottom: 1px solid var(--chassis);
  flex-shrink: 0;
}
._tab_5wntb_258 {
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  color: var(--mid);
  padding: 6px 12px;
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._tabActive_5wntb_280 {
  color: var(--bright);
  border-bottom-color: var(--bright);
}

/* ---- Paragraph row ---- */
._paragraphRow_5wntb_286 {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.7;
  text-align: left;
  color: var(--bright);
  padding: 4px 8px;
  margin: 2px 0;
  border-left: 2px solid transparent;
  cursor: default;
  background: var(--bg); /* opaque so behind-wires never bleed through text */
}
._paragraphRow_5wntb_286:hover {
  background: var(--wash-row-hover);
}
/* Table-origin rows: subtle tabular cue (the [TABLE] marker is stripped). */
._rowTable_5wntb_302 {
  color: var(--bright);
} /* table rows: same type as prose (was mono 12px grey) */
._rowEmphasized_5wntb_305 {
  border-left-color: var(--sev-info);
  background: var(--wash-active);
}
._rowFocused_5wntb_309 {
  border-left-color: var(--sev-crit);
  background: var(--wash-active);
}
/* Focus / filter cut marker between non-adjacent paragraphs. */
._gap_5wntb_314 {
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--dim);
  text-align: center;
  padding: 6px 0;
  margin: 6px 8px;
  border-top: 1px dashed var(--grid-line);
  border-bottom: 1px dashed var(--grid-line);
}
._rowPid_5wntb_324 {
  font-family: var(--font-body);
  font-variant-numeric: tabular-nums;
  font-size: 10px;
  color: var(--dim);
  margin-right: 8px;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

/* ---- Findings panel (right) ---- */
._findingsPanel_5wntb_334 {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: var(--bg);
  border-left: 1px solid var(--chassis);
}
._findingsHead_5wntb_341 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-bottom: 1px solid var(--chassis);
  flex-shrink: 0;
}
._findingsTitle_5wntb_349 {
  font-size: 13px;
  font-weight: 600;
  color: var(--bright);
}
._findingsCount_5wntb_354 {
  font-family: var(--font-body);
  font-variant-numeric: tabular-nums;
  font-size: 10px;
  color: var(--dim);
}
._findingsList_5wntb_360 {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0;
  display: flex;
  flex-direction: column;
}

/* ---- Finding card ---- */
._findingCard_5wntb_370 {
  border: none;
  border-bottom: 1px solid var(--grid-line);
  border-left: 2px solid transparent;
  background: transparent;
  padding: 14px 16px 14px 14px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
._findingCard_5wntb_370:hover {
  background: var(--wash-row-hover);
}
._findingCardActive_5wntb_384 {
  border-left-color: var(--sev-crit);
  background: var(--wash-active);
}

._cardHead_5wntb_389 {
  display: flex;
  align-items: center;
  gap: 8px;
}
._sevPill_5wntb_88 {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 0;
  border: none;
  text-transform: uppercase;
  flex-shrink: 0;
}
._sevCritical_5wntb_404 {
  color: var(--sev-crit);
  border-color: var(--sev-crit);
}
._sevMajor_5wntb_408 {
  color: var(--sev-major);
  border-color: var(--sev-major);
}
._sevInfo_5wntb_412 {
  color: var(--sev-info);
  border-color: var(--sev-info);
}
._sevOk_5wntb_416 {
  color: var(--sev-ok);
  border-color: var(--sev-ok);
}

._cardTitle_5wntb_421 {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.55;
  color: var(--bright);
}
._cardChips_5wntb_427 {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
._chip_5wntb_432 {
  font-family: var(--font-body);
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  color: var(--dim);
  border: none;
  padding: 0;
}

/* ---- Empty / loading ---- */
._empty_5wntb_442 {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--dim);
  font-family: var(--font-body);
  font-size: 14px;
}

/* Column resize handle (Obsidian-style): the gutter itself; a line on hover. */
._resizer_5wntb_453 {
  cursor: col-resize;
  position: relative;
  touch-action: none;
}
._resizer_5wntb_453::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 3px;
  width: 2px;
  background: transparent;
  transition: background 120ms;
}
._resizer_5wntb_453:hover::after,
._resizer_5wntb_453:active::after {
  background: var(--mid);
}

/* 2026-10-31 — the stabilo: the exact passages a finding is about, in its
   severity colour (findingQuotes.ts). The overview's highlighter stroke
   (uneven 2px 6px 3px 7px ends) brought down to the words. Translucent fill,
   so findings that overlap stack like two passes of the pen and the text keeps
   its colour. --hl-a is raised for the active / hovered finding and lowered
   for the others by the rule ReaderShell injects. */
._shell_5wntb_13 {
  --hl-a-rest: 30%;
  --hl-a-hot: 55%;
  --hl-a-cold: 10%;
}

:root:not([data-theme='light']) ._shell_5wntb_13 {
  --hl-a-rest: 34%;
  --hl-a-hot: 60%;
  --hl-a-cold: 12%;
}

._paragraphRow_5wntb_286 mark[data-hl] {
  --hl: var(--sev-info);
  --hl-a: var(--hl-a-rest);
  color: inherit;
  background-color: color-mix(in srgb, var(--hl) var(--hl-a), transparent);
  padding: 1px 0;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  cursor: pointer;
  transition: background-color 150ms;
}

._paragraphRow_5wntb_286 mark[data-hl-sev='CRITICAL'] {
  --hl: var(--sev-crit);
}

._paragraphRow_5wntb_286 mark[data-hl-sev='MAJOR'] {
  --hl: var(--sev-major);
}

._paragraphRow_5wntb_286 mark[data-hl-sev='OK'] {
  --hl: var(--sev-ok);
}

/* a stroke's true ends: rounded, overhanging the word a little (no reflow) */
._paragraphRow_5wntb_286 mark[data-hl][data-hl-s] {
  padding-left: 2px;
  margin-left: -2px;
  border-top-left-radius: 2px;
  border-bottom-left-radius: 7px;
}

._paragraphRow_5wntb_286 mark[data-hl][data-hl-e] {
  padding-right: 2px;
  margin-right: -2px;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 3px;
}

._paragraphRow_5wntb_286 mark[data-hl-sev='REJECTED'] {
  --hl: var(--dim);
}

/* Reading the full document: the strokes step back to thin underlines in the
   severity colour (the selected finding keeps its stroke — ReaderShell's
   injected rule). Focus mode keeps the strokes. --hl-a still drives the
   colour, so hovering a card fades the other findings' underlines too. */
._shell_5wntb_13[data-hl-mode='underline'] ._paragraphRow_5wntb_286 mark[data-hl] {
  background-color: transparent;
  text-decoration-line: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none; /* a pen line runs through descenders */
  text-decoration-color: color-mix(in srgb, var(--hl) calc(var(--hl-a) * 2.4), transparent);
}

/* 2026-10-31 — the findings as a working file: OK / strike out on each card,
   a thread under the selected finding, a composer docked under the list.
   DESIGN.md Register 2: neutral chrome; colour only on status (the pressed ✓
   is the reviewed status); one primary action (Ask). */
._cardActions_5wntb_551 {
  margin-left: auto;
  display: inline-flex;
  gap: 4px;
  opacity: 0;
  transition: opacity 150ms;
}

._findingCard_5wntb_370:hover ._cardActions_5wntb_551,
._findingCardActive_5wntb_384 ._cardActions_5wntb_551,
._cardActions_5wntb_551:focus-within {
  opacity: 1;
}

._cardAction_5wntb_551 {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 6px;
  background: none;
  color: var(--dim);
  cursor: pointer;
}

._cardAction_5wntb_551:hover {
  background: var(--bg-soft);
  color: var(--almost-white);
}

._cardActionOk_5wntb_583,
._cardActionOn_5wntb_584 {
  border-color: var(--chassis);
}

._cardActionOk_5wntb_583 {
  color: var(--sev-ok);
}

._cardActionOn_5wntb_584 {
  color: var(--almost-white);
}

/* a set verdict stays visible even when the card isn't hovered */
._findingCard_5wntb_370:has(._cardActionOk_5wntb_583) ._cardActions_5wntb_551,
._findingCard_5wntb_370:has(._cardActionOn_5wntb_584) ._cardActions_5wntb_551 {
  opacity: 1;
}

/* struck out: the pen through the finding — greyed, title crossed */
._findingCardStruck_5wntb_603 ._sevPill_5wntb_88,
._findingCardStruck_5wntb_603 ._chip_5wntb_432 {
  color: var(--dim);
}

._findingCardStruck_5wntb_603 ._cardTitle_5wntb_421 {
  color: var(--dim);
  text-decoration: line-through;
  text-decoration-color: var(--mid);
}

._threadCount_5wntb_614 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--dim);
  font-variant-numeric: tabular-nums;
}

._thread_5wntb_614 {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid var(--grid-line);
  cursor: default;
}

._msg_5wntb_633 {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

._msgAgent_5wntb_639 {
  padding-left: 12px;
  border-left: 2px solid var(--chassis);
}

._msgMeta_5wntb_644 {
  font-size: 12px;
  color: var(--dim);
}

._msgText_5wntb_649 {
  font-size: 14px;
  line-height: 1.55;
  color: var(--bright);
  white-space: pre-wrap;
}

._msgError_5wntb_656,
._msgPending_5wntb_657 {
  font-size: 13px;
  color: var(--mid);
}

._msgRefs_5wntb_662 {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
}

._refChip_5wntb_668 {
  font: inherit;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  color: var(--mid);
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
  text-decoration-color: var(--chassis);
  cursor: pointer;
}

._refChip_5wntb_668:hover {
  color: var(--almost-white);
}

._proposal_5wntb_685 {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--mid);
}

._proposalBtn_5wntb_694 {
  flex-shrink: 0;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 2px 8px;
  border: 1px solid var(--chassis);
  border-radius: 6px;
  background: none;
  color: var(--almost-white);
  cursor: pointer;
}


._composer_5wntb_708 {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 16px 16px;
  border-top: 1px solid var(--chassis);
  background: var(--bg);
}

._quickRow_5wntb_717 {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

._quick_5wntb_717 {
  font: inherit;
  font-size: 12px;
  padding: 4px 8px;
  border: 1px solid var(--grid-line);
  border-radius: 6px;
  background: none;
  color: var(--mid);
  cursor: pointer;
}

._quick_5wntb_717:hover:not(:disabled) {
  color: var(--almost-white);
  border-color: var(--chassis);
}

._quick_5wntb_717:disabled {
  opacity: 0.5;
  cursor: default;
}

._composerInput_5wntb_744 {
  font: inherit;
  font-size: 14px;
  line-height: 1.5;
  resize: vertical;
  min-height: 48px;
  max-height: 200px;
  padding: 8px;
  border: 1px solid var(--chassis);
  border-radius: 6px;
  background: var(--bg);
  color: var(--bright);
}

._composerInput_5wntb_744:focus {
  outline: none;
  border-color: var(--mid);
}

._composerFoot_5wntb_763 {
  display: flex;
  align-items: center;
  gap: 8px;
}

._composerError_5wntb_769 {
  flex: 1;
  font-size: 12px;
  color: var(--sev-crit);
}

/* two classes: must beat app.module.css .primary / .secondary whatever the
   stylesheet order */
._composerFoot_5wntb_763 ._composerBtn_5wntb_777 {
  font-size: 13px;
  padding: 4px 12px;
}

/* 2026-10-31 — free-review page cap: one quiet line under the toolbar
   (ReviewScopeNote renders nothing when the whole document was reviewed). */
._scopeNote_5wntb_784 {
  margin: 0;
  padding: 8px 16px;
  font-size: 13px;
  color: var(--mid);
  border-bottom: 1px solid var(--grid-line);
}

/* 2026-11-01 — cross-references are links (xrefs.ts): a quiet dotted line in
   the text colour until hovered, like a pencil mark in the margin. */
._paragraphRow_5wntb_286 a[data-xref-to] {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: var(--mid);
  text-underline-offset: 3px;
  cursor: pointer;
}

._paragraphRow_5wntb_286 a[data-xref-to]:hover {
  color: var(--almost-white);
  text-decoration-style: solid;
}

/* After following one: back to where the lawyer was. */
._xrefBack_5wntb_809 {
  position: absolute;
  left: 16px;
  bottom: 16px;
  z-index: 30;
  font: inherit;
  font-size: 13px;
  padding: 4px 12px;
  border: 1px solid var(--chassis);
  border-radius: 6px;
  background: var(--bg);
  color: var(--almost-white);
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

._xrefBack_5wntb_809:hover {
  background: var(--bg-soft);
}

/* 2026-11-01 (Arnaud) — a struck finding folds to one line (less room for
   what the lawyer set aside; click opens it again); a reviewed one is edged
   in green with a faint green wash (status colour on a status). */
._findingCardStruck_5wntb_603:not(._findingCardActive_5wntb_384) {
  padding-top: 8px;
  padding-bottom: 8px;
  gap: 2px;
}

._findingCardStruck_5wntb_603:not(._findingCardActive_5wntb_384) ._cardTitle_5wntb_421 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

._findingCardStruck_5wntb_603:not(._findingCardActive_5wntb_384) ._cardChips_5wntb_427 {
  display: none;
}

._findingCardOk_5wntb_848:not(._findingCardActive_5wntb_384) {
  border-left-color: var(--sev-ok);
  background: color-mix(in srgb, var(--sev-ok) 6%, transparent);
}

/* 2026-11-01 — a proposed change drawn as tracked changes: what goes is
   struck in red, what comes underlined in blue (Word's convention); Accept
   turns into a green "Accepted" that undoes on a second click. */
._proposalBody_5wntb_856 {
  flex: 1;
  min-width: 0;
}

._proposalReason_5wntb_861 {
  margin-top: 4px;
  font-size: 12px;
  color: var(--dim);
}

._redDel_5wntb_867 {
  color: var(--sev-crit);
  text-decoration: line-through;
}

._redIns_5wntb_872 {
  color: var(--sev-info);
  text-decoration: underline;
  text-underline-offset: 2px;
}

._proposalBtn_5wntb_694 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

._proposalAccepted_5wntb_884 {
  color: var(--sev-ok);
  border-color: var(--sev-ok);
}

/* 2026-11-01 — "Linked clauses" under the selected finding, closed until
   asked for: each line says where and why. */
._linked_5wntb_891 {
  margin-top: 4px;
}

._linkedToggle_5wntb_895 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font: inherit;
  font-size: 12px;
  color: var(--mid);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

._linkedToggle_5wntb_895:hover {
  color: var(--almost-white);
}

._linkedList_5wntb_912 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 8px;
}

._linkedItem_5wntb_919 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  font: inherit;
  text-align: left;
  background: none;
  border: none;
  border-radius: 6px;
  padding: 4px 8px;
  margin: 0 -8px;
  cursor: pointer;
}

._linkedItem_5wntb_919:hover {
  background: var(--bg-soft);
}

._linkedWhere_5wntb_938 {
  font-size: 13px;
  color: var(--bright);
  font-variant-numeric: tabular-nums;
}

._linkedWhy_5wntb_944,
._linkedEmpty_5wntb_945 {
  font-size: 12px;
  color: var(--dim);
}

/* 2026-11-01 — comments on passages (Word-style): a neutral label, the
   quoted words, a grey stroke on the passage; the floating button over a
   selection; the composer's "New comment" head. */
._sevComment_5wntb_953 {
  color: var(--mid);
}

._cardQuote_5wntb_957 {
  font-size: 13px;
  font-style: italic;
  color: var(--mid);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

._listLabel_5wntb_967 {
  padding: 12px 16px 4px 14px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--dim);
}

._paragraphRow_5wntb_286 mark[data-hl-sev='COMMENT'] {
  --hl: var(--mid);
}

._selComment_5wntb_980 {
  position: fixed;
  z-index: 50;
  transform: translate(-50%, calc(-100% - 8px));
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font: inherit;
  font-size: 13px;
  padding: 4px 12px;
  border: 1px solid var(--chassis);
  border-radius: 6px;
  background: var(--bg);
  color: var(--almost-white);
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

._selComment_5wntb_980:hover {
  background: var(--bg-soft);
}

._draftHead_5wntb_1002 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
  font-size: 12px;
}

._draftWhere_5wntb_1010 {
  color: var(--mid);
  font-weight: 600;
}

._draftQuote_5wntb_1015 {
  flex: 1;
  min-width: 0;
  font-style: italic;
  color: var(--mid);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._draftCancel_5wntb_1025 {
  font: inherit;
  font-size: 12px;
  color: var(--dim);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
}

/* 2026-11-01 (Arnaud, #8) — the OK findings' checklist group: a quiet label
   that opens like a disclosure, under the issues. */
._okGroup_5wntb_1038 {
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  padding: 16px 16px 8px 12px;
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--dim);
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
}

._okGroup_5wntb_1038:hover {
  color: var(--mid);
}
/* 2026-10-30 — reading-mode top bar (onboarding refactor, step 6).
   Row 1 = the app header (where am I + Export). Row 2 = how I look at the
   findings, left to right: move through findings · filter · search · view.
   DESIGN.md Register 2: whitespace divides, colour only on status. */

._toolbar_4mv1t_6 {
  display: flex;
  align-items: center;
  gap: 24px;
  height: 48px;
  padding: 0 24px;
  border-bottom: 1px solid var(--grid-line);
  background: var(--bg);
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--mid);
  flex-shrink: 0;
  min-width: 0;
}

._group_4mv1t_21 {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

._spacer_4mv1t_28 {
  flex: 1;
}

._navBtn_4mv1t_32 {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  border: 1px solid var(--chassis);
  background: none;
  color: var(--almost-white);
  cursor: pointer;
}

._navBtn_4mv1t_32:disabled {
  opacity: 0.4;
  cursor: default;
}

._count_4mv1t_50 {
  font-variant-numeric: tabular-nums;
  color: var(--bright);
  min-width: 48px;
  text-align: center;
}

._chip_4mv1t_57 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid var(--grid-line);
  background: none;
  font: inherit;
  font-size: 13px;
  color: var(--bright);
  cursor: pointer;
  font-variant-numeric: tabular-nums;
}

._chipOff_4mv1t_72 {
  color: var(--dim);
  border-style: dashed;
}

._chipOff_4mv1t_72 ._dot_4mv1t_77 {
  opacity: 0.35;
}

._dot_4mv1t_77 {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

._select_4mv1t_87 {
  font: inherit;
  font-size: 13px;
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid var(--grid-line);
  background: var(--bg);
  color: var(--bright);
  max-width: 220px;
}

._search_4mv1t_98 {
  font: inherit;
  font-size: 13px;
  width: 200px;
  padding: 5px 10px;
  border-radius: 6px;
  border: 1px solid var(--grid-line);
  background: var(--bg-row);
  color: var(--almost-white);
}

._searchMiss_4mv1t_109 {
  border-color: var(--sev-crit);
}

._menuWrap_4mv1t_113 {
  position: relative;
}

._menuBtn_4mv1t_117 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid var(--grid-line);
  background: none;
  font: inherit;
  font-size: 13px;
  color: var(--bright);
  cursor: pointer;
}

._menu_4mv1t_113 {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 60;
  width: 280px;
  padding: 8px;
  border-radius: 6px;
  background: var(--bg);
  border: 1px solid var(--chassis);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

._menuItem_4mv1t_144 {
  display: grid;
  grid-template-columns: 16px 1fr;
  gap: 8px;
  align-items: start;
  width: 100%;
  padding: 8px;
  border: none;
  border-radius: 6px;
  background: none;
  text-align: left;
  font: inherit;
  font-size: 13px;
  color: var(--almost-white);
  cursor: pointer;
}

._menuItem_4mv1t_144:hover:not(:disabled) {
  background: var(--bg-row);
}

._menuItem_4mv1t_144:disabled {
  color: var(--dim);
  cursor: default;
}

._menuHint_4mv1t_170 {
  display: block;
  color: var(--mid);
  margin-top: 2px;
}

@media (max-width: 1100px) {
  ._hideMd_4mv1t_177 {
    display: none;
  }
}
/* Loading skeletons (2026-10-31). DESIGN.md Register 2, rule 8: the waiting
   state is part of the design — each screen shows its own shape while its data
   arrives, instead of a line of "Loading…" text. Calm on purpose: flat blocks,
   a slow breathing pulse, nothing moves sideways. */

._bone_1r2yr_6 {
  display: block;
  background: color-mix(in srgb, var(--mid) 16%, transparent);
  border-radius: 4px;
  animation: _breathe_1r2yr_1 1.6s ease-in-out infinite;
}

._round_1r2yr_13 {
  border-radius: 50%;
}

/* Appear only if the wait is real: a cached screen renders before this shows,
   so a fast load never flashes a skeleton (150 ms fade, rule 7). */
._root_1r2yr_19 {
  animation: _appear_1r2yr_1 150ms ease-out 120ms both;
}

@keyframes _appear_1r2yr_1 {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes _breathe_1r2yr_1 {
  50% {
    opacity: 0.55;
  }
}

@media (prefers-reduced-motion: reduce) {
  ._bone_1r2yr_6,
  ._root_1r2yr_19 {
    animation: none;
  }
}

._stack_1r2yr_45 {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

._row_1r2yr_51 {
  display: flex;
  align-items: center;
  gap: 16px;
}

/* Overview: A4 page placeholders */
._pageGrid_1r2yr_58 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}

._page_1r2yr_58 {
  width: 85px;
  height: 120px;
  border-radius: 2px;
}

/* Reader: document column + findings panel */
._readerBody_1r2yr_72 {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  background: var(--bg-soft);
}

._readerDoc_1r2yr_80 {
  padding: 40px 48px;
  max-width: 760px;
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
}

._readerSide_1r2yr_88 {
  padding: 24px;
  border-left: 1px solid var(--grid-line);
  background: var(--bg);
}

._card_1r2yr_94 {
  padding: 16px;
  border: 1px solid var(--grid-line);
  border-radius: 6px;
  margin-bottom: 16px;
}

/* Sign-in gate, session restoring: a bare app header (no account menu yet). */
._bareHeader_1r2yr_102 {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 56px;
  padding: 0 24px;
  border-bottom: 1px solid var(--grid-line);
}

@media (max-width: 860px) {
  ._readerBody_1r2yr_72 {
    grid-template-columns: minmax(0, 1fr);
  }
  ._readerSide_1r2yr_88 {
    display: none;
  }
}
