/* tap-targets.css — the 44-pixel floor, in BOTH dimensions, and it loads LAST on purpose.
 *
 * Every rule here raises a TAP AREA and none of them changes the signed design's proportions: what
 * grows is the box a finger has to hit, through a min-height and padding, not the ink. It is its own
 * file and the last stylesheet the shell links because that is the only way it can win: the rules it
 * corrects live in screens.css at the same specificity, and a rule that loses a cascade it was
 * written to win is a rule that silently does nothing. Written for W-MTSP9A1P's AC-6 after measuring
 * sixteen controls under 44 pixels on the founder's own desk — the "Sign it" button among them, at 36.
 */
/* ── the 44-pixel floor (W-MTSP9A1P, AC-6) ────────────────────────────────────────────────────
   Measured on the desk at 2026-09-14: sixteen controls were under 44 pixels tall, among them the
   "Sign it" button at 36 — the founder's own primary act, and the one he reaches for on a phone.
   The signed design's proportions are kept: what grows is the TAP AREA, through padding and a
   min-height, not the ink. A 36-pixel button with 4 pixels of padding above and below reads as the
   same button and can actually be hit. */
#app .btn, #app button.btn, #app .btn.small, #app .btn-primary, #app .btn-quiet { min-height: 44px; }
#app nav#nav a, #app .side-search, #app .tabbar a, #app .identity, #app .project { min-height: 44px; }
#app .segs a, #app .filterbar a, #app .rowacts .btn, #app .sheet-foot .btn { min-height: 44px; }
#app .cnt-jump { min-height: 44px; padding: 0 2px; }
/* The ticket dialog's own tabs, and the chip that carries a decision back to the ticket it came
   out of — both are real destinations and both were under the floor. */
#app .tabs a, #app [role="tab"], #app .fromchip { min-height: 44px; display: inline-flex; align-items: center; }
#app .stat-row, #app .stat-link, #app .backlink, #app .tl,
#app .stat-details > summary, #app .acdrawer > summary, #app .fold > summary,
#app .rowd > summary, #app .sheet-x, #app .ticket-top .x { min-height: 44px; }
#app .stat-row, #app .backlink, #app .stat-details > summary { display: flex; align-items: center; }
/* ONE EXCEPTION, and it is named rather than quietly allowed: `.u`, the Status block's unit marks —
   one 11-pixel square per ticket in the cycle, forty-two of them in a strip. It is a GLANCE at the
   shape of the cycle that also happens to link, and every ticket in it is reachable at full size two
   ways over: its Kanban card and its Library row. Made 44 pixels each the strip would be 1 800
   pixels wide and would stop being the thing it is. Recorded in this ticket's evidence and left to
   W-MU0QO3JW, whose screen it is. */
/* The skip link is off-screen until it is focused, so its own tap area costs nothing. */
#app .skip { min-height: 44px; display: inline-flex; align-items: center; }
#app select, #app input[type="search"], #app input[type="text"] { min-height: 44px; }
/* A control whose min-height is set but whose content is centred by line-height alone would grow a
   ragged box; every one of these is already a flex or grid child, so the extra height is shared. */
#app .btn, #app .cnt-jump, #app .segs a, #app .filterbar a { display: inline-flex; align-items: center; justify-content: center; }

/* ── the same mistake, one width further in ───────────────────────────────────────────────────
   Found on the HOSTED page at 768, after the floor was believed to be everywhere: the four primary
   navigation links measured 40. The rule that beat this file is inside a responsive block —
   `#app .sidebar nav#nav a` at (1,2,1) against `#app nav#nav a` at (1,1,1) — and SPECIFICITY WINS
   REGARDLESS OF ORDER, so loading last is not enough on its own. Every rule below matches or
   exceeds the specificity of the one it is correcting; the selectors are longer than anyone would
   choose, and that is the point. Three more rules in the responsive blocks set 40 and each is
   answered here by name rather than by hoping a shorter selector reaches it. */
#app .sidebar nav#nav a, #app .sidebar .side-search, #app .sidebar .identity { min-height: 44px; }
#app .sheet-body input, #app .sheet-body select { min-height: 44px; }
#app .sheet.pop .sheet-foot .btn { min-height: 44px; }

/* ── the other dimension ──────────────────────────────────────────────────────────────────────
   Every rule above this line sets a min-HEIGHT and none of them sets a width, so the floor was
   enforced in one dimension only — and an instrument that measures one dimension cannot say
   otherwise, which is how "every control ≥ 44, with one named exception" came to be written about a
   page whose ticket-dialog Close button was 26 pixels wide. An independent verifier measured both
   and failed the criterion on 2026-09-14; it was right to.

   Width is set only where a control is an ICON or a lone word, because a wide control is already
   wide and forcing a minimum on, say, a row would deform the layout. The list is the one the
   verifier measured, by name. */
#app .ticket-top .x, #app .sheet-x { min-width: 44px; }
#app .sidebar .side-search, #app .sidebar .identity, #app .side-search, #app .identity { min-width: 44px; }
#app .tabs a, #app [role="tab"] { min-width: 44px; }
#app .btn, #app button.btn, #app .btn.small, #app .cnt-jump { min-width: 44px; }
#app .segs a, #app .filterbar a { min-width: 44px; }
/* The unit marks keep their 11 pixels and their reason, stated above and in the evidence. */
