/* oink-snout-touch.css v1 — OINK-SNOUT-TOUCH-2026-09-08. Geometry + physics for SnoutOS pages, from the CDP geometry audit (render-all 09-08): 44 px hit areas, 8 px rhythm, 14 px floor. Every selector is a SnoutOS class; inert on classic/desktop. */
.oink-shell-link, .oink-shell-inbox, .oink-shell-menu, .oink-shell-back, .oink-shell-brand, .grp-topbar-logo, .navbtn, .top-icon-btn, .top-inbox, .oink-rpt-btn, .oink-cr-star, .oc-dim-btn, .snout-overflow-trigger, .oc-new-btn, .oc-filter-btn, .ie-discard, .ie-save, .ai-filter, .ai-trim-handle, .simple-sw, .voice-chip, .snout-seg-btn, .tk-live, .flex-prev, .flex-next, .dfn-close { min-width: 44px; min-height: 44px; box-sizing: border-box; touch-action: manipulation; -webkit-tap-highlight-color: rgba(0,0,0,.08); }
a.oink-shell-link, .oink-shell-link { display: inline-flex; align-items: center; justify-content: center; padding: 0 10px; }
.oink-shell-inbox, .oink-shell-menu, .navbtn, .top-icon-btn, .top-inbox, .oink-rpt-btn, .oink-cr-star, .oc-new-btn, .ie-discard, .ie-save, .flex-prev, .flex-next { display: inline-flex; align-items: center; justify-content: center; }
.snout-seg-btn, .oc-filter-btn, .ai-filter, .voice-chip, .tk-live, .simple-sw { display: inline-flex; align-items: center; justify-content: center; padding: 0 12px; line-height: 1.2; }
.dfn-close { padding: 12px; }
.ai-trim-handle { min-width: 32px; padding: 0 6px; }
/* small icon links and tiny text links: enlarge the hit area without moving the layout */
a.sq, a.hot, a.sec-a, a.tier-rules, a.menu_item_link { display: inline-block; padding: 12px 6px; margin: -12px -6px; line-height: 1.3; }
a.hot, a.sec-a, a.tier-rules, .sec-a, .tier-rules { font-size: 14px; }
/* form controls: 44 px, 16 px text (no iOS zoom) */
input.pu-promo, select.ai-lang-pick, .snout-input, .oc-input, input[type=text].snout, input[type=search].snout { min-height: 44px; font-size: 16px; box-sizing: border-box; }
/* rhythm: adjacent shell links / buttons keep 8 px */
.oink-shell-link + .oink-shell-link, .snout-seg-btn + .snout-seg-btn, .oc-filter-btn + .oc-filter-btn, .ai-filter + .ai-filter { margin-left: 8px; }
/* images: never unsized in flow */
.snout-card img, .oink-card img, .pb-card img, .vw-card img { max-width: 100%; height: auto; display: block; }
/* v2 (06:42Z) — second CDP round: ids beat classes (e.g. #oc-help-btn), so the size floor is !important; new families measured: .chip (Cruising filters), .tab/.nb (PigBoard), .ai-editor-btn (profile editor), .oc-push-enable */
.oink-shell-link, .oink-shell-inbox, .oink-shell-menu, .oink-shell-back, .navbtn, .top-icon-btn, .top-inbox, .oink-rpt-btn, .oink-cr-star, .oc-dim-btn, .snout-overflow-trigger, .oc-new-btn, .oc-filter-btn, .ie-discard, .ie-save, .ai-filter, .simple-sw, .voice-chip, .snout-seg-btn, .tk-live, .flex-prev, .flex-next, .dfn-close, .chip, .tab, .nb, .ai-editor-btn, .oc-push-enable, .grp-topbar-logo { min-width: 44px !important; min-height: 44px !important; box-sizing: border-box !important; }
.chip, .tab, .ai-editor-btn, .oc-push-enable { display: inline-flex !important; align-items: center; justify-content: center; padding-left: 12px; padding-right: 12px; }
.nb { display: inline-flex !important; align-items: center; justify-content: center; }
html body a.sq { display: inline-block !important; padding: 9px !important; margin: -9px !important; box-sizing: content-box !important; }
.chip + .chip, .tab + .tab, .nb + .nb { margin-left: 8px; }
/* v3 (07:10Z) — third CDP round: width-only shortfalls (PigBoard button.a 31–42 px, OC .oc-star-btn 38 px), Cruising filter checkbox 18 px / ticker search 32 px / sound toggle 28 px / piggy strip 23 px, Views a.hot 42 px */
button.a, .oc-star-btn, .ticker-search-btn, .iap-sound-toggle, .oink-cr-star { min-width: 44px !important; min-height: 44px !important; }
input#filter-has-photo, .snout-filter input[type=checkbox], .filter-row input[type=checkbox] { width: 22px; height: 22px; margin: 11px; }
a.piggy-strip, .piggy-strip { min-height: 44px !important; display: flex !important; align-items: center; }
html body a.hot { padding: 13px 6px !important; margin: -13px -6px !important; }
