{
  "before-1440-light": [
    {
      "s": 0.001,
      "text": "BEFORE 70e5e384da | 1440\u00d71000 CSS | light | 100% zoom\n1. Open saved teal KC. Save is enabled."
    },
    {
      "s": 2.558,
      "text": "BEFORE | 2. Type ABC. Preview ABC; Save incorrectly enabled."
    },
    {
      "s": 7.121,
      "text": "BEFORE | 3. Click Save. Picker closes; server rejects ABC. Read the failure toast."
    },
    {
      "s": 12.182,
      "text": "BEFORE | 4. Reopen. Saved KC remains unchanged."
    }
  ],
  "after-1440-light": [
    {
      "s": 1.698,
      "text": "AFTER def9e75af2 | 1440\u00d71000 CSS | light | 100% zoom\n1. Saved KC is enabled. Save and reopen: KC persists."
    },
    {
      "s": 6.141,
      "text": "AFTER | 2. Type ABC: invalid, PA fallback; disabled Save cannot close or cause a failure toast."
    },
    {
      "s": 11.008,
      "text": "AFTER | 3. Cancel invalid draft and reopen: saved KC restored. Correct to KC and save/reopen."
    },
    {
      "s": 26.803,
      "text": "AFTER | 4. One grapheme B: accepted. Save and reopen B."
    },
    {
      "s": 32.361,
      "text": "AFTER | 5. Decomposed e + acute + B: normalized \u00c9B accepted. Save and reopen \u00c9B."
    },
    {
      "s": 38.373,
      "text": "AFTER | 6a. Empty: invalid/disabled."
    },
    {
      "s": 40.661,
      "text": "AFTER | 6b. Whitespace: invalid/disabled."
    },
    {
      "s": 42.883,
      "text": "AFTER | 6c. Punctuation A!: invalid/disabled."
    },
    {
      "s": 45.096,
      "text": "AFTER | 6d. Whitespace + lowercase ab: normalized AB, enabled."
    },
    {
      "s": 47.587,
      "text": "AFTER | 6e. 34 input code units; 33 after NFKC, one grapheme: invalid/disabled."
    },
    {
      "s": 49.825,
      "text": "AFTER | 6f. ABC: invalid/disabled."
    },
    {
      "s": 69.736,
      "text": "AFTER | 7. Switch to Icons: Save enabled despite invalid monogram draft."
    },
    {
      "s": 73.824,
      "text": "AFTER | 7. Switch to Emoji: Save enabled despite invalid monogram draft."
    },
    {
      "s": 77.05,
      "text": "AFTER | 7. Switch to Monogram: ABC remains invalid; Save disabled."
    },
    {
      "s": 80.34,
      "text": "AFTER | 7. Switch to Icons: Save enabled despite invalid monogram draft."
    },
    {
      "s": 83.615,
      "text": "AFTER | 8. Save Icons; reopen: Icons selected, no Letters field. Restore teal KC and reopen for the next audit."
    }
  ],
  "before-1440-dark": [
    {
      "s": 0,
      "text": "BEFORE 70e5e384da | 1440\u00d71000 CSS | dark | 100% zoom\n1. Open saved teal KC. Save is enabled."
    },
    {
      "s": 2.564,
      "text": "BEFORE | 2. Type ABC. Preview ABC; Save incorrectly enabled."
    },
    {
      "s": 6.622,
      "text": "BEFORE | 3. Click Save. Picker closes; server rejects ABC. Read the failure toast."
    },
    {
      "s": 10.898,
      "text": "BEFORE | 4. Reopen. Saved KC remains unchanged."
    }
  ],
  "before-390-dark": [
    {
      "s": 0,
      "text": "BEFORE 70e5e384da | 390\u00d71000 CSS | dark | 100% zoom\n1. Open saved teal KC. Save is enabled."
    },
    {
      "s": 2.636,
      "text": "BEFORE | 2. Type ABC. Preview ABC; Save incorrectly enabled."
    },
    {
      "s": 6.044,
      "text": "BEFORE | 3. Click Save. Picker closes; server rejects ABC. Read the failure toast."
    },
    {
      "s": 9.796,
      "text": "BEFORE | 4. Reopen. Saved KC remains unchanged."
    }
  ],
  "before-390-light": [
    {
      "s": 0,
      "text": "BEFORE 70e5e384da | 390\u00d71000 CSS | light | 100% zoom\n1. Open saved teal KC. Save is enabled."
    },
    {
      "s": 2.576,
      "text": "BEFORE | 2. Type ABC. Preview ABC; Save incorrectly enabled."
    },
    {
      "s": 5.678,
      "text": "BEFORE | 3. Click Save. Picker closes; server rejects ABC. Read the failure toast."
    },
    {
      "s": 9.217,
      "text": "BEFORE | 4. Reopen. Saved KC remains unchanged."
    }
  ],
  "after-1440-dark": [
    {
      "s": 0,
      "text": "AFTER def9e75af2 | 1440\u00d71000 CSS | dark | 100% zoom\n1. Saved KC. Enter ABC: invalid, PA fallback, Save disabled."
    },
    {
      "s": 3.319,
      "text": "AFTER | 2. Click disabled Save: stays open, no failure. Cancel/reopen: KC restored."
    },
    {
      "s": 7.253,
      "text": "AFTER | 3. Correct to KC; Save, reopen: KC persisted."
    }
  ],
  "after-390-dark": [
    {
      "s": 0,
      "text": "AFTER def9e75af2 | 390\u00d71000 CSS | dark | 100% zoom\n1. Saved KC. Enter ABC: invalid, PA fallback, Save disabled."
    },
    {
      "s": 3.326,
      "text": "AFTER | 2. Click disabled Save: stays open, no failure. Cancel/reopen: KC restored."
    },
    {
      "s": 7.36,
      "text": "AFTER | 3. Correct to KC; Save, reopen: KC persisted."
    }
  ],
  "after-390-light": [
    {
      "s": 0,
      "text": "AFTER def9e75af2 | 390\u00d71000 CSS | light | 100% zoom\n1. Saved KC. Enter ABC: invalid, PA fallback, Save disabled."
    },
    {
      "s": 3.562,
      "text": "AFTER | 2. Click disabled Save: stays open, no failure. Cancel/reopen: KC restored."
    },
    {
      "s": 11.471,
      "text": "AFTER | 3. Correct to KC; Save, reopen: KC persisted."
    }
  ]
}