# Plan: Playbook -- remove background blocks, match report/brief editorial design

**Spec/review:** Opus · **Coder:** Sonnet · **Skills:** ponytail, karpathy, honey
**File:** `scripts/assessment_design_playbook.py` (`_CSS` block + the Two-Lane render line). CSS-only; no content changes.

## Goal
The reports (`assurance_report_html.py`) and briefs use a flat editorial system: white ground, structure from hairline rules and bottom-border headings, no filled cream/white cards, no rounded blocks, semantic wash reserved for meaning. The playbook currently boxes its sections and categories in filled cards with `border-radius`. Strip the fills/radii to match.

## Changes (CSS only, minimal-diff)
1. `.section` -- remove `background: var(--cream)`, `border`, and `border-radius`; keep it flat (e.g. `padding: 0 0 6px; margin-bottom: 20px;`). Its `.section-heading` (gold bottom-rule, already styled) provides the divider.
2. `.category-block` -- remove `background: var(--paper)`, `border`, and `border-radius`; flat (`padding: 0;`). Keep `break-inside: avoid` and the `.category-block + .category-block { break-before: page; }` page break. The `.category-title` gold underline + the page break separate categories.
3. `.anchor-callout` (used only for the Two-Lane & TILT callout) -- convert from a filled tint box to the reports' left-rule treatment (mirror the report's `.focus`): `background: none; border: none; border-left: 3px solid var(--accent); border-radius: 0; padding: 2px 0 2px 13px;` (keep font-size/color/line-height). Optionally rename the class to `.consideration` and update the one render line at ~line 349; renaming is optional (ponytail: restyle in place is fine).
4. `.tech-cell` -- remove `background: var(--paper)` and `border-radius`; keep a single hairline `border: 1px solid var(--border)` with no fill (a flat bordered cell, not a card). `.tech-mini-grid` unchanged.
5. `@media print` -- the `-webkit-print-color-adjust: exact` rule listing `.section, .category-block, .anchor-callout` can drop the now-fill-less selectors but must keep the `.goldline`/gold-border color-exact behavior so the ASU gold still prints. Leaving the rule as-is is acceptable (harmless); do not remove color-exact from the gold header rule.
6. Unused tokens (`--cream`, `--accent-tint`) may be left in place (harmless) or removed -- coder's call, ponytail.

Do NOT change any category content, headings, order, tech mappings, or the Two-Lane/TILT text. Visual only.

## Acceptance criteria
1. Rendered playbook has no filled `.section`/`.category-block`/`.tech-cell` backgrounds and no `border-radius` on them; ground is white/paper.
2. The Two-Lane & TILT callout renders as a left-rule (maroon) block with no fill.
3. Category page-breaks and the gold header/section rules still render (including in print/PDF).
4. No content diff -- only CSS and (optionally) the one callout class name change.
5. No em/en dashes; full suite green: `.venv/bin/python3 -m pytest tests/ -q`. Update `tests/test_assessment_design_playbook.py` only if it asserts on the changed CSS strings (e.g. `anchor-callout` background); do not touch content assertions.

## Verify (reviewer, Opus)
Regenerate the playbook and confirm: flat white ground, no filled cards/radii, left-rule Two-Lane callout, gold rules intact, one-page-per-category preserved. Read the diff (CSS-only). Re-run suite. Coder != reviewer.

## Workflow
Branch `feat/playbook-flat-design` -> implement -> full suite green -> PR against `main`, do NOT merge. Report branch, PR#, verbatim pytest line, files changed, confirmation the fills/radii are gone.
