/* Counter edition: one screen, opened from a QR code at the butcher's counter. */
:root{--dianteiro:#d6b29c;--costas:#c48b7e;--barriga:#e1c3b0;--traseiro:#a0605a}
body{padding-bottom:0!important}
#app-shell .header{justify-content:space-between}
.counter-title{font:clamp(2rem,7vw,2.6rem)/1.08 var(--serif);letter-spacing:-.035em;margin:14px 0 16px}
.counter-title span{color:var(--wine)}

/* Body parts: tonal families teach dianteiro vs traseiro at a glance. */
.map-zone[data-part=Dianteiro] path,.cow-locator [data-part=Dianteiro]{fill:var(--dianteiro)}
.map-zone[data-part=Costas] path,.cow-locator [data-part=Costas]{fill:var(--costas)}
.map-zone[data-part=Barriga] path,.cow-locator [data-part=Barriga]{fill:var(--barriga)}
.map-zone[data-part=Traseiro] path,.cow-locator [data-part=Traseiro]{fill:var(--traseiro)}
.map-zone[data-part=Traseiro] text{fill:#fff}
.map-zone:hover path{fill:#8e4a44}
.map-zone.selected path{fill:var(--wine)}
.map-zone path{stroke-width:1.1}
.map-zone text{font-size:10px}
.part-key{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;list-style:none;margin:0 0 6px;padding:0;font-size:12px;color:var(--muted)}
.part-key li{display:flex;align-items:center;gap:6px}
.part-key li::before{content:"";width:11px;height:11px;border-radius:3px;background:var(--c)}
.part-key [data-part=Dianteiro]{--c:var(--dianteiro)}.part-key [data-part=Costas]{--c:var(--costas)}
.part-key [data-part=Barriga]{--c:var(--barriga)}.part-key [data-part=Traseiro]{--c:var(--traseiro)}
.is-searching .part-key{display:none}
#map-container{min-height:300px}

/* Cut sheet: show where it is before what it is. */
.sheet-where{margin:-4px 0 6px}
.sheet-locator{background:#f3eee6;border-radius:18px;padding:6px 10px}
.cow-locator{display:block;width:100%;height:auto}
.cow-locator path{stroke:#f3eee6;stroke-width:1.1;opacity:.45}
.cow-locator .cow-outline{fill:#d9c4b6;opacity:1}
.cow-locator path.is-here{fill:var(--wine);opacity:1}
.locator-end{font:600 7px var(--sans);letter-spacing:.14em;fill:#9c8f84}
.where-text{font-size:1.05rem;line-height:1.45;color:var(--ink)}
.where-myth{margin-top:10px;padding:12px 14px;border-radius:14px;background:var(--tint);font-size:.9rem;line-height:1.45}
.where-myth strong{color:var(--wine)}
#sheet-title{margin-bottom:12px}
#cut-sheet .sheet-label{margin:20px 0 6px}
.sheet-actions a.primary{display:flex;align-items:center;gap:8px;background:var(--wine);color:#fff}

.counter-footer{text-align:center;font-size:12px;color:var(--muted);padding:8px 16px 28px}
.counter-footer span{font-family:var(--serif);font-size:15px;color:var(--ink)}
@media(max-width:620px){
 #main{padding:0 16px 20px}
 #app-shell .header{padding:0 16px;height:64px}
 .counter-title{margin:8px 0 12px}
 #map-container{min-height:clamp(240px,40svh,380px)}
}
.sheet-source{font-size:.75rem;color:var(--muted)}

/* Smooth silhouette (2026-09-26): head, hooves, ear and tail tuft are outline only. */
.cow-outline{fill:#cdb2a2;stroke:none}
.cow-head,.cow-hoof,.cow-tail,.cow-ear,.cow-horn,.cow-tuft{fill:#a98272;pointer-events:none}
.cow-horn,.cow-ear{fill:#8d6a5c}
.cow-nostril{fill:none;stroke:#6f5145;stroke-width:1;stroke-linecap:round;pointer-events:none}
.cow-shadow{fill:#e6ddd0}
.cow-edge{fill:none;stroke:#8d6a5c;stroke-width:.9;stroke-linejoin:round;pointer-events:none}
.map-zone path{stroke:#f6f1ea;stroke-width:1;stroke-linejoin:round}
.map-zone.is-inner path{stroke-dasharray:2.4 1.6}
.zone-hit{fill:transparent;stroke:none}
.map-zone[data-zone=rabada] text{fill:var(--ink)}
.map-zone[data-zone=rabada].selected text{fill:var(--wine)}
.cow-locator .cow-edge{stroke-width:.7}
.cow-locator path.is-here{stroke:#fff;stroke-width:1}
#sheet-title:has(+.sheet-en){margin-bottom:2px}
.sheet-en{margin:0 0 14px;font-size:.95rem;color:var(--muted)}

/* Mis-tap recovery and swipe-to-close (2026-09-26). */
.sheet-nearby{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 2px;font-size:.8rem;color:var(--muted)}
.sheet-nearby span{margin-right:2px}
.sheet-nearby button{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:999px;padding:7px 11px;min-height:36px;cursor:pointer}
.sheet-nearby button b{color:var(--wine);font-weight:650}
.sheet-handle,.sheet-top{touch-action:none}
@media(max-width:620px){.sheet-handle{box-sizing:content-box;background-clip:content-box;padding:10px 40px;margin:-10px auto 0}}
.sheet-nearby{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-24px;padding-right:24px}
.sheet-nearby::-webkit-scrollbar{display:none}
.sheet-nearby span,.sheet-nearby button{flex-shrink:0;white-space:nowrap}

/* Cuts that come from the same region: one tap switches the sheet. */
.sheet-siblings{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.sheet-siblings button{font:inherit;font-size:.85rem;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:999px;padding:7px 12px;min-height:36px;cursor:pointer}
.sheet-siblings button[aria-pressed=true]{background:var(--wine);border-color:var(--wine);color:#fff}

/* Shop pages: the butcher's logo (or name) replaces the Boi Riscado mark. */
.brand.is-shop{font-size:1.45rem;letter-spacing:-.03em;max-width:calc(100% - 64px);overflow:hidden;text-overflow:ellipsis}
.brand.is-shop span{overflow:hidden;text-overflow:ellipsis}
.shop-logo{display:block;height:44px;width:auto;max-width:220px;object-fit:contain}

/* Raw-cut photo in the cut sheet. */
.sheet-photo{margin:18px 0 4px}
.sheet-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:18px;background:#efe6dc}
.sheet-photo figcaption{margin-top:6px;font-size:.75rem;color:var(--muted)}
