/* ══ VSSGEO · rhythm.css — spacing & readability fixes (design team, designer 5, 2026-09-28) ══════════════════
   Loads LAST on the map app. Each rule fixes one measured finding (see scratchpad/ux/team/rhythm/REPORT.md, R-ids).
   Scope: chat panel (#geop), Data library (#lib), report panel (#panel), Map settings panel (#stybox), front-door
   hero/legal (.fd). Deliberately NOT styled here: the phone "more" menu / map controls / tool chest (designer 1),
   the front-door rail and the account sheet #set (designer 2) — those findings are recommendations in the report.
   8-pt grid: 4 / 8 / 12 / 16 / 24 / 32 / 48. Radius family: 8 / 12 / 16 / pill. Phone hit targets: 44 px.   */

/* R1 · Data library: the tab row scrolled sideways under the × — the third tab ("Where our data comes from") was
   hidden even when it was the active tab (1440, 1024 and phone). The tabs now get their own full-width row. */
body.door #lib .lhd{flex-wrap:wrap;row-gap:var(--vg-s2)}
body.door #lib .lhd>.ib[aria-label="Close"]{margin-left:auto}
body.door #lib .lhd .ltabs{order:3;flex:1 0 100%;flex-wrap:wrap;overflow:visible;min-width:0;row-gap:var(--vg-s1)}
body.door #lib .ltabs button{padding:var(--vg-s2) var(--vg-s3)}                         /* was 7px 12px */

/* R2 · radius family: the small radius token was 9 px (off the 8/12/16/pill family) on ~40 controls. */
body.door{--vg-r-sm:8px}
body.door .gctx .glay button{border-radius:8px}                                           /* was 7px */

/* R3 · chat panel rhythm: context strip sat 6 px above the thread with 7 px padding; "you" bubble 10 px tall padding */
body.door #geop>.gctx{margin:0 12px 8px;padding:8px 12px}
body.door #gthr .gm.you>p{padding-top:12px;padding-bottom:12px}

/* R4 · Data library spacing onto the 8-pt grid (was 18 / 14 / 10 / 28 / 6 px) */
body.door #libbody>p.note{margin-bottom:var(--vg-s4)}                                     /* note→search: 12 vs 16 elsewhere */
body.door #libbody>.lsplit{gap:var(--vg-s4)}
body.door #libbody .ltile>.t{padding:var(--vg-s3)}
body.door #libbody>.crumb{margin-bottom:var(--vg-s4);gap:var(--vg-s2)}
body.door #libbody>.ohead,body.door #libbody>.onode{column-gap:var(--vg-s4)}
body.door #libbody>.onode{padding-top:var(--vg-s3);padding-bottom:var(--vg-s3)}
body.door #lib .srcx>.h4{margin-top:var(--vg-s5)}
body.door #lib .sxtab th{padding:var(--vg-s2) var(--vg-s3)}
body.door #ldet .note{margin-bottom:var(--vg-s3)}

/* R6 · phone type floor: nothing readable under 12 px (was 10.5 / 11 / 11.5) */
@media (max-width:760px){
  body.door #libbody .ltier,body.door #libbody .ltile .t small,body.door #libbody .onode .mp,
  body.door #lib .srcx>.h4,body.door #lib .sxtab th{font-size:12px}
  body.door #stybox .swt small{font-size:12px}
  #fd .legal{font-size:12px}
}

/* R7 · phone hit targets: the door's touch size was 40 px; the brief's floor is 44. */
@media (pointer:coarse){
  :root{--th-hit:44px}                                                                     /* chat header, composer, chips (thread.css) */
  body.door .gcomp .pm-addr{height:44px}
  body.door #panel .winbar :is(.wbtn,.backbtn),body.door #panel .wnav .dlbtn{width:44px;height:44px}
  html body.door.vgsh #panel.open .winbar :is(.wbtn,.backbtn,.jhome){width:44px!important;height:44px!important}  /* sheet.css pins 40 */
  body.door #panel :is(.wnav button,.goal .chip,.pk button,.heard .acts .chip,.nextq a,details.more>summary,.vr2-acts button){min-height:44px}
  body.door #lib .ltabs button{min-height:44px}
  body.door #lib .lhd .ib[aria-label="Close"],body.door #stybox .gin .ib[aria-label="Close"]{width:44px;height:44px}
  body.door #lib .lsearch .go,body.door #lib .lsearch input{min-height:44px}
  body.door #libbody .crumb a{display:inline-flex;align-items:center;min-height:44px}
  body.door #lib .qm summary{position:relative}
  body.door #lib .qm summary::before{content:"";position:absolute;inset:-14px;border-radius:var(--vg-pill)}
  #fd #send{width:44px;height:44px}
}
