/* /salsa-crossbody/ only: break marks, conga row, neon sign, couple silhouette, naming shelf. Shared styles stay in chapters.css. */
.cb-beats { margin: 8px 0; }
.cs-c.brk { box-shadow: inset 0 -5px 0 var(--ink); }
.cs-c.pause { color: #3f332b; }
.cs-row.cg .cs-c { background: #fff8ec; border-color: var(--meer); }
.cs-row.cg .cs-c.open { background: var(--meer); color: #fff; }
.cs-row.cg .cs-c.slap { border-style: dashed; }
.cs-row.cg .cs-c.hit { background: var(--achiote); border-color: var(--ink); }
.cb-seg button { min-width: 88px; font-size: 15px; }
.cs-play { margin: 8px 0; }
.cb-next { margin: 6px 0 12px; }
.cb-sign { background: var(--nacht); border: 3px solid var(--ink); border-radius: 4px; padding: 8px 8px 8px; margin: 0 0 6px; }
.cb-marq { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 0 4px 6px; }
.cb-neon { display: block; font: 700 28px var(--serif); color: #ffb3a8; text-shadow: 0 0 6px var(--rosa), 0 0 16px var(--achiote); letter-spacing: .06em; }
.cb-year { display: block; font: 700 24px var(--mono); color: var(--platano); text-shadow: 0 0 8px var(--platano); }
.cb-stage { width: 100%; height: auto; display: block; border-radius: 2px; background: var(--nacht); }
.cb-wall { fill: #2a3c47; } .cb-floor { stroke: var(--platano); stroke-width: 2; }
.cb-stage .st { opacity: 0; transition: opacity 200ms var(--ease); fill: var(--paper); stroke: none; }
.cb-stage[data-stage="open"] .st-open, .cb-stage[data-stage="latin"] .st-latin, .cb-stage[data-stage="couple"] .st-couple, .cb-stage[data-stage="run"] .st-run, .cb-stage[data-stage="raid"] .st-raid, .cb-stage[data-stage="closed"] .st-closed { opacity: 1; }
.st .arm { fill: none; stroke: var(--paper); stroke-width: 4; }
.st-open .marquee { fill: #3a2a33; stroke: var(--platano); stroke-width: 2; } .st-open .bulb { fill: var(--platano); } .st-open .door { fill: #14202a; stroke: var(--platano); stroke-width: 2; }
.st-latin .band { fill: #6b4a2a; } .st-latin .cg-body { fill: #c2452d; stroke: var(--paper); stroke-width: 1.5; } .st-latin .cg-band { fill: #8f2f1f; } .st-latin .cg-head { fill: #f3e7d8; stroke: var(--paper); stroke-width: 1.5; } .st-latin .horn { fill: var(--platano); }
.st-run path, .st-run circle { fill: var(--platano); } .st-run .arm { stroke: var(--platano); }
.st-raid .notice { fill: #fff8ec; stroke: var(--ink); stroke-width: 2; } .st-raid .glass { fill: var(--meer); } .st-raid .slash { stroke: var(--achiote); stroke-width: 5; }
.st-closed .tbl { fill: #8a7d72; } .st-closed .chair { fill: #5d5249; }
.cb-sign[data-stage="closed"] .cb-neon { color: #8a8f93; text-shadow: none; }
.cb-sign[data-stage="closed"] .cb-year { color: #8a8f93; text-shadow: none; }
@media (prefers-reduced-motion: no-preference) { .cb-sign[data-stage="raid"] .cb-neon { animation: cb-flick 900ms steps(1) infinite; } }
@keyframes cb-flick { 0% { opacity: 1; } 12% { opacity: .15; text-shadow: none; } 24% { opacity: 1; } 40% { opacity: .3; } 55% { opacity: 1; } 70% { opacity: .1; text-shadow: none; } 100% { opacity: 1; } }
.cb-sign[data-stage="raid"] .cb-neon { color: #f19a8e; }
.yr { display: block; margin: 6px 0 0; }
.yr-range { display: block; width: 100%; } input.yr-range { -webkit-appearance: none; appearance: none; height: 48px; background: transparent; }
.yr-ticks { position: relative; height: 22px; margin: 0 15px 8px; font: 15px var(--mono); }
.yr-ticks span { position: absolute; transform: translateX(-50%); }
.yr-ticks span:first-child { transform: none; } .yr-ticks span[data-y="1950"] { transform: translateX(-15%); } .yr-ticks span:last-child { transform: translateX(-100%); }
.cs-feet { display: grid; grid-template-columns: repeat(8, 1fr); gap: 4px; margin: 12px 0 6px; }
.ft { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; min-height: 72px; border-bottom: 2px solid var(--ink); font: 14px var(--mono); }
.ft svg { width: 18px; height: 30px; fill: var(--ink); } .ft[data-foot="R"] svg { margin-top: 12px; }
.ft.brk svg { width: 26px; height: 44px; fill: var(--achiote); stroke: var(--ink); stroke-width: 1.5; }
.ft.off { background: repeating-linear-gradient(90deg, transparent 0 4px, #e9dcc7 4px 6px); border-bottom-style: dashed; }
.ft.now { background: var(--platano); } .ft.now svg { transform: translateY(-6px); }
.cs.single .cs-row:not(.cur):not(.cg) { display: none; }
.cs-c.match { outline: 3px solid var(--meer); }
.cb-play-row { display: flex; gap: 8px; }
.cb-cap { min-height: 6.4em; }
.cb-msg {  font-size: 17px; line-height: 1.4; margin: 4px 0 8px; }
.cb-shelf { margin: 10px 0; } .cb-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 14px 6px 0; border-bottom: 8px solid var(--ink); }
.cb-leg { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 6px 0 10px; font: 14px var(--mono); } .cb-leg span { display: inline-flex; gap: 6px; align-items: center; } .cb-leg i { display: inline-block; width: 14px; height: 20px; border: 2px solid var(--ink); border-radius: 2px 2px 0 0; background: var(--platano); }
.cb-leg .tag-sum { background: #f3d99a; } .cb-leg .tag-gov { background: #cfe0e6; border-color: var(--meer); } .cb-leg .tag-rep { background: #e8c9a0; border-style: double; }
.cb-spine { min-height: 104px; border: 2px solid var(--ink); border-radius: 3px 3px 0 0; background: var(--platano); color: var(--ink); display: flex; flex-direction: column; justify-content: space-between; align-items: center; padding: 8px 2px; font: 700 14px var(--serif); touch-action: manipulation; }
.cb-spine i { font: 12px var(--mono); font-style: normal; }
.cb-spine.tag-sum { background: #f3d99a; } .cb-spine.tag-gov { background: #cfe0e6; border-color: var(--meer); } .cb-spine.tag-rep { background: #e8c9a0; border-style: double; border-width: 4px; } .cb-spine.tag-snip { background: #fff8ec; border-style: dashed; }
.cb-spine { transition: transform 120ms var(--ease); } .cb-spine[aria-pressed="true"] { transform: translateY(-10px) rotate(-2deg); box-shadow: 3px 5px 0 var(--ink); }
.cb-panel { border: 2px solid var(--ink); border-radius: 4px; background: #fff8ec; padding: 12px 14px; margin: 8px 0 16px; box-shadow: 3px 3px 0 var(--ink); }
.cb-panel p { margin: 6px 0 0; font-size: 17px; }
.cb-tag { font: 12px var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--achiote); }
/* one count row strong at a time: the chosen row is full strength, the other dims */
.cs:not(.single) .cs-row:not(.cur):not(.cg) { opacity: .38; }
.cb-src { margin: 24px 0 96px; padding: 0 16px; }
.cb-src summary { font: 600 18px var(--serif); min-height: 44px; display: flex; align-items: center; cursor: pointer; }
.cb-src ul { list-style: none; padding: 0; margin: 0; }
.cb-src li { margin: 0; padding: 8px 0; border-top: 1px solid #d9c7a3; font-size: 15px; overflow-wrap: anywhere; }
.cb-src li a { display: inline-block; min-height: 44px; box-sizing: border-box; padding: 10px 0; font-weight: 600; }
.cb-src .g { margin: 14px 0 4px; display: block; width: max-content; font: 12px var(--mono); text-transform: uppercase; letter-spacing: .04em; border-radius: 999px; padding: 2px 9px; background: var(--ink); color: var(--paper); } .cb-src .g-C { background: #f3d99a; color: var(--ink); }
.cb-src .ids { display: block; font: 12px var(--mono); color: #3f332b; }
.dock-clave svg, .dock-clave .clave-ico { width: 26px; height: 26px; vertical-align: middle; margin-right: 6px; }
body.salsa .dock-clave svg, body.salsa .dock-clave .clave-ico { width: 22px; height: 22px; margin: 0; }
.top .sib { min-height: 44px; padding: 0 6px; }
.seg button { padding: 0 12px; }
.ft svg .toe { fill: var(--paper); stroke: none; }
.ft[data-foot="L"] { padding-bottom: 6px; } .ft[data-foot="R"] { padding-bottom: 0; }
.ft.brk svg { transform: translateY(-10px); } .ft.now.brk svg { transform: translateY(-16px); }
.pads .pad { min-height: 104px; } .pad small { font: 14px var(--mono); font-weight: 400; }
