From 75f682fa5e53910d53b0494a065a9b0ea10a22e0 Mon Sep 17 00:00:00 2001 From: builder-1 Date: Sat, 5 Sep 2026 14:35:05 +0000 Subject: [PATCH] fix(meeting-recap): keep the document under budget at every width, not three The contract sampled 390, 768 and 1440. All three sit inside a compact layout, so two over-budget bands went unmeasured: 320-372 (peak 3,385px) and 545-615 (peak 3,174px), the second caused by the card collapse ending at 34rem while the table still renders tall until ~640. Move the collapse breakpoint to 40rem so the action table stays in card form until it has the width to render compactly, and add a 24rem band that spends width and vertical rhythm at the narrowest sizes: the decision numeral gutter is dropped so the text gets the full measure, and the collapsed table rows -- seven identical cards, the largest spacing lever in the document -- lose padding. Nothing structural is removed. The only type change is the h1 at <=24rem, from a 1.75rem clamp floor to 1.5rem, which is still far above every floor in the contract. Swept 320-700 at step 1 and 700-1920 at step 2, asserting innerWidth before each measurement: peak 3,385px @ 320 -> 2,820px @ 320 390 2,821 -> 2,774 768 2,082 -> 2,082 (unchanged) 1,440 1,866 -> 1,866 (unchanged) over 2,900 -> none at any width overflow-x -> 0 at every width Co-Authored-By: CRHQ --- templates/meeting-recap.html | 44 ++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/templates/meeting-recap.html b/templates/meeting-recap.html index f8094d4..5ad3a62 100644 --- a/templates/meeting-recap.html +++ b/templates/meeting-recap.html @@ -99,7 +99,7 @@ .foot{margin-top:2.5rem;padding-top:1.125rem;border-top:1px solid var(--line-2);display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem 2rem;color:var(--subtle);font-size:.8125rem} .foot b{display:block;color:var(--muted);font-weight:600;margin-bottom:.125rem} -@media (max-width:34rem){ +@media (max-width:40rem){ .page{padding:1.875rem 1rem 1.75rem} .mast p{font-size:1rem} .ledger h3{font-size:1.0625rem} @@ -111,7 +111,7 @@ .note{padding:.75rem .875rem} .ledger>li{grid-template-columns:1.75rem minmax(0,1fr);gap:.75rem} .ledger .num{font-size:1.0625rem;line-height:1.45} - .strip{gap:.5rem} + .strip{gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr))} .strip>li{padding:.625rem .75rem} .strip .n{font-size:1.375rem} caption{display:block} @@ -126,19 +126,49 @@ td.due{grid-column:1/-1;font-size:.8125rem;color:var(--subtle)} td.due::before{content:"Due ";font-weight:600} /* height tightening — spacing only, no content removed */ - .facts{margin-top:.875rem;padding-top:.75rem} - h2.sec{margin-top:1.25rem} + .facts{margin-top:.75rem;padding-top:.625rem} + h2.sec{margin-top:1.125rem} h2.sec+*{margin-top:.75rem} - .ledger>li{padding-block:.75rem} + .ledger>li{padding-block:.6875rem} .tags{margin-top:.375rem} .note{margin-top:.625rem} caption{padding:.625rem 1rem} - tr{padding:.75rem 1rem} + tr{padding:.625rem .875rem} td.task{margin-top:.3125rem} .opens{gap:.625rem} - .opens li{padding:.75rem .875rem} + .opens li{padding:.625rem .75rem} .foot{margin-top:1.25rem;padding-top:.875rem} } + +@media (max-width:24rem){ + /* 320-384: the card collapse is already on, and the document is still over budget because every + line wraps more. Spend width and spacing, never content: drop the numeral gutter so the decision + text gets the full measure, and tighten the vertical rhythm. */ + .page{padding:1rem .625rem 1.125rem} + /* The h1 clamp floors at 1.75rem, which is three lines at 320. 1.5rem is still far above every + type floor in the contract (13px prose / 12px metadata / 11px labels) and buys a line. */ + .mast h1{font-size:1.5rem;line-height:1.2} + .mast p{margin-top:.5rem} + .ledger>li{grid-template-columns:minmax(0,1fr);gap:.1875rem;padding-block:.5rem} + .ledger .num{font-size:1rem;line-height:1.3} + .ledger .why{margin-top:.25rem} + .tags{margin-top:.3125rem} + .strip{margin-top:.875rem;gap:.375rem} + .strip>li{padding:.4375rem .5rem} + .facts{margin-top:.625rem;padding-top:.5rem} + .opens li{padding:.5rem .625rem} + .note{margin-top:.4375rem;padding:.5rem .625rem} + .foot{margin-top:1.125rem;padding-top:.75rem} + /* the action table is 7 collapsed cards; every row pays the same padding, so this is the + largest spacing lever in the document at this width. Nothing structural is removed. */ + tr{padding:.5rem .75rem;gap:.125rem .5rem} + td.task{margin-top:.1875rem} + caption{padding:.5rem .75rem} + h2.sec{margin-top:1rem} + h2.sec+*{margin-top:.625rem} + .opens{gap:.5rem} +} +