/* Writing Assistant · app-only CSS that the mock does not carry. Round 6: the mock lifted the app's former shim (docs/40
   D1, R6 and the a11y-43 overlay/reflow rules) into editor.css "Core twins" and components.css "App integration", so
   those rules are GONE from here. What remains is truly app-only; tokens only, lint 0 findings. The `.04em` punctuation
   padding was deliberately not kept (marks add no horizontal geometry since mock round 5, 09 §7.11). */
@layer components {
  /* a11y 43 m3: the guest h1 holds only the name; the subtitle is a paragraph beside it (same look as the lifted line) */
  .wa-guestline__h { margin: 0; font: inherit; letter-spacing: inherit; color: inherit; }
  .wa-guestline__sub { margin: 0; }
  /* a11y 43 m1: rail groups are h2 + role=list; the rows container is a plain block (display:contents drops the role) */
  .wa-rail__rows { display: block; }
  /* e2e 42 m2: consent "Read the full notice" is a link-style disclosure on its own 24px line under the text; the notice
     scrolls inside the card rather than pushing the actions off screen (docs/40 D5) */
  .wa-linkbtn { display: inline-flex; align-items: center; min-height: var(--sp-6); padding: 0; border: 0; background: none; font: inherit; cursor: pointer; }
  .wa-card__more { margin: var(--sp-1) 0 0; font-size: var(--fs-label); line-height: var(--lh-label); }
  .wa-card__notice { max-height: calc(8 * var(--lh-label)); overflow-y: auto; margin-top: var(--sp-2); padding: var(--sp-2) var(--sp-3); border-radius: var(--r-md); background: var(--surface-2); }
  /* e2e 42 m1: the empty state's rhythm (the lifted 40px gap + the spacer read as a dead band under the placeholder) */
  .wa-floatlayer > .wa-starters { margin-top: var(--sp-5); }
  /* a11y 43 m8: placeholders are drawn, not read as document text (alt-text form of content; older engines keep the lifted rule) */
  .wa-doc .wa-empty::before { content: attr(data-placeholder) / ""; }
  .wa-doc-title:empty::before { content: attr(data-placeholder) / ""; }
  /* core critic 31b H4: the block suggestion is an <ins> (semantic) holding whole paragraphs */
  ins.wa-blockdiff__new { display: block; }
}
@layer components {
  /* the grounding marks, badge and note (docs/40 D6) are lifted from the mock since release 60 (editor.css, components.css) */
  /* spoken-only text of the app's own marks (the core styles its own inline) */
  .wa-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
}
@layer components {
  /* a11y 43 M9: Windows High Contrast removes the tint and the box-shadow rules; give every diff cue a non-colour form */
  @media (forced-colors: active) {
    .wa-sugg-ins, .wa-ins { text-decoration: underline var(--sp-half) Highlight; text-underline-offset: 0.15em; }
    .wa-sugg-del, .wa-del { text-decoration: line-through var(--sp-half); }
    .wa-sugg-ins--block, .wa-blockold .wa-blockdiff__new { border-left: var(--sp-1) solid Highlight; }
    .wa-blockold { border-left: var(--sp-1) dashed CanvasText; }
    .wa-sugg--flag, .wa-review__flag { border: 1.5px solid CanvasText; }
    .wa-passage::before { forced-color-adjust: none; background: Highlight; }
    .wa-sugg--active { outline: var(--sp-half) solid Highlight; }
    .wa-seg { border: var(--sp-px) solid ButtonText; }
    /* a11y 43 m12: the focused ‹ › ring must not run into "2 of 10" */
    .wa-review__nav [data-role="pos"] { margin-inline: var(--sp-2); }
    .wa-review__nav .wa-iconbtn:focus-visible { outline-offset: 0; }
    .wa-sel { background: Highlight; color: HighlightText; forced-color-adjust: none; }
  }
}
@layer utilities {
  /* a11y 43 M7: the skip link is fixed above everything (the site nav and promo banner, z 50, covered it). The lifted
     rule gives the ring; this is only the stacking. In the utilities layer because the lifted .wa-skip lives there. */
  .wa-skip:focus, .wa-skip:focus-visible { position: fixed; transform: none; z-index: var(--z-skip, 2147483000); }
}
@layer components {
  /* e2e 42 m3: the draft length select sits inside the composer's brief chip */
  .wa-scope .wa-select { width: auto; min-height: var(--sp-6); height: auto; padding: 0 var(--sp-2); font-size: var(--fs-meta); }
}
@layer components {
  /* parity 46 mn-5: below 1024 an OPEN assistant sheet (its lifted height) lifts the toast above it, as the peek does */
  @media (max-width: 1023.98px) {
    .wa-app[data-panel="open"] .wa-toasts { bottom: calc(min(62dvh, 640px) + var(--sp-4)); }
    /* release 60 (e2e 47 M-1): while an insert preview streams or waits for Keep, the sheet is only its STRIP (grabber +
       head), so the preview and the Keep bar docked on the strip own the screen; tapping the head opens the sheet */
    .wa-app[data-previewing="true"][data-panel="peek"] { --peek-h: calc(var(--sp-12) + var(--sp-2) + var(--sp-1)); }
  }
}
@layer components {
  /* parity 46 p-2: "Assistant home" sits at the start of its row, aligned with the header, not centred on its own */
  .wa-panel__back { align-self: flex-start; }
}
@layer components {
  /* release 60 (parity 49 MJ-B): the ACTIVE change as the mock draws it. The core puts .wa-sugg--active on the deletion
     AND on its insert widget, so the lifted rule drew two dashed boxes, and `.wa-sugg-del`'s own tint (declared later,
     equal specificity) hid the active lift.
     · the lift: the change's tint over --surface-3, the mock's composite (its wrapper is surface-3, the del/ins tint on top),
       painted as a solid surface-3 background + an inset tint shadow (a gradient background defeats the contrast check);
     · ONE box: a del + insert pair shares one dashed border (the del's right edge and the insert's left edge open; the
       .2em gap moves from the insert's margin into the del's padding, and the 1px borders are cancelled by -1px margins,
       so activating a change never moves a word);
     · a pure deletion's EMPTY insert anchor draws no box (it was a 3–4px phantom after the word). */
  .wa-sugg-del.wa-sugg--active { background: var(--surface-3); box-shadow: inset 0 0 0 100vmax var(--del-tint), -1px 0 0 var(--surface-3), 1px 0 0 var(--surface-3); }
  .wa-sugg-ins.wa-sugg--active:not(:empty):not(.wa-sugg-ins--block) { background: var(--surface-3); box-shadow: inset 0 -2px 0 var(--ins), inset 0 0 0 100vmax var(--ins-tint), -1px 0 0 var(--surface-3), 1px 0 0 var(--surface-3); }
  .wa-sugg-ins.wa-sugg--active:empty { outline: none; }
  .wa-sugg-del.wa-sugg--active:not(.wa-sugg--sentence):not(.wa-sugg--blockdiff):has(+ .wa-sugg-ins.wa-sugg--active:not(:empty)) {
    outline: none; border: var(--sp-px) dashed var(--accent); border-right-width: 0; border-radius: 3px 0 0 3px;
    margin-left: calc(-1 * var(--sp-px)); padding-right: .2em;
  }
  .wa-sugg-del.wa-sugg--active:not(.wa-sugg--sentence):not(.wa-sugg--blockdiff) + .wa-sugg-ins.wa-sugg--active:not(:empty) {
    outline: none; border: var(--sp-px) dashed var(--accent); border-left-width: 0; border-radius: 0 3px 3px 0;
    margin-left: 0; margin-right: calc(-1 * var(--sp-px));
  }
  .wa-blockold .wa-sugg-del.wa-sugg--active { background: none; }
}
@layer components {
  /* release 60 (e2e 47 m-E): tables in the text read as tables: a 1px grid on every cell edge, a tinted header row,
     cells top-aligned with their paragraphs flush (before: no rules at all, "Cell A1 Cell B1" read as a sentence) */
  .wa-doc :where(table), .wa-prose :where(table) { border-collapse: collapse; margin: 1em 0; max-width: 100%; font-size: .94em; line-height: 1.5; }
  .wa-doc :where(th, td), .wa-prose :where(th, td) { border: var(--sp-px) solid var(--border-strong); padding: var(--sp-1) var(--sp-3); vertical-align: top; text-align: left; overflow-wrap: anywhere; }
  .wa-doc :where(th), .wa-prose :where(th) { background: var(--surface-2); font-weight: var(--fw-page-bold); }
  .wa-doc :where(th, td) > :where(p), .wa-prose :where(th, td) > :where(p) { margin: 0; }
  /* release 60 (e2e 47 m-F): a code block is ONE box: its <code> is not also the inline-code pill on every line */
  .wa-doc :where(pre) :where(code), .wa-prose :where(pre) :where(code) { padding: 0; border-radius: 0; background: none; box-shadow: none; font-size: inherit; }
}
