9e2216d202
Il piano originale aveva `floor(span/15) + 1` che over-conta a span allineati (span=60min → 5 invece di 4). Il primo fix dell'implementer (`floor(span/15)`) under-conta a span non-allineati (span=16min → 1 invece di 2). Solo `ceil(span/15)` è corretto in entrambi i casi. Aggiunti 2 test che coprono gli scenari non-allineato e boundary-esatto per impedire regressioni. Plan doc allineato. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>