/* Pepperoni Pool table, overlays and controls. Colors lean on the shared
   theme tokens so light and dark modes both read cleanly. */
.bp-page main{max-width:1040px;margin:0 auto;padding:0 16px}
.bp-heading{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:end;justify-content:space-between;margin:18px 0 10px}
.bp-heading h1{margin:4px 0 0}
.bp-heading p{margin:0;text-align:right;font-weight:600}
.bp-eyebrow{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.14em}
.bp-beta{display:flex;gap:10px;align-items:center;border:1px dashed var(--line);border-radius:10px;padding:8px 12px;margin:10px 0}
.bp-beta span{font-size:11px;font-weight:800;border:1px solid var(--line);border-radius:7px;padding:2px 7px}
.bp-beta p{margin:0;font-size:13px}
.bp-cabinet{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--soft)}
.bp-players{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 4px 10px}
.bp-player{display:flex;flex-direction:column;gap:2px;min-width:120px;padding:6px 10px;border:1px solid var(--line);border-radius:10px}
.bp-player.is-active{outline:2px solid #3e7a4f;outline-offset:1px}
.bp-player.is-me strong::after{content:" ★"}
.bp-player span{font-size:12px;opacity:.85}
.bp-table-brand{font-size:11px;font-weight:800;letter-spacing:.2em;opacity:.7}
.bp-clock{margin:0 4px 8px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.bp-stage{position:relative}
#bp-board{display:block;width:100%;height:auto;border-radius:10px;touch-action:none;cursor:crosshair}
#bp-board:focus-visible{outline:3px solid #3e7a4f;outline-offset:2px}
.bp-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,#10200f 45%,transparent);border-radius:10px;padding:14px}
.bp-ticket{background:var(--panel,var(--soft));border:1px solid var(--line);border-radius:14px;padding:18px 20px;max-width:430px;width:100%;max-height:100%;overflow:auto;box-shadow:0 12px 32px rgb(0 0 0/.3)}
.bp-ticket h2{margin:4px 0 10px;line-height:1.05}
.bp-ticket h2 em{font-style:italic}
.bp-ticket p{font-size:14px;line-height:1.55}
.bp-ticket small{display:block;margin-top:10px;font-size:12px;opacity:.8}
.bp-ticket label{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;margin:10px 0 4px}
.bp-ticket input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:var(--bg,transparent);color:inherit}
.bp-primary,.bp-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:9px 16px;margin:10px 8px 0 0;border-radius:10px;font-weight:800;cursor:pointer}
.bp-primary{background:#b43225;border:1px solid #7e1f16;color:#fff7ee}
.bp-primary:hover{background:#c73a2b}
.bp-secondary{background:transparent;border:1px solid var(--line);color:inherit}
.bp-copy-row{display:flex;gap:8px}
.bp-copy-row input{flex:1;font-size:12px}
.bp-copy-row button{min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:9px;background:var(--soft);font-weight:800;cursor:pointer}
.bp-controls{margin-top:12px}
.bp-turn{margin:0 4px 6px;font-size:14px;font-weight:600;min-height:1.4em}
.bp-shot-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 4px}
.bp-shot-row label{font-size:11px;font-weight:800;letter-spacing:.1em}
.bp-shot-row input[type="range"]{flex:1;min-width:140px;accent-color:#b43225;min-height:44px}
.bp-shot-row .bp-primary,.bp-shot-row .bp-secondary{margin:0}
#bp-status{margin:8px 4px 0;font-size:13px;min-height:1.3em}
.bp-guide{margin:26px 0}
.bp-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:14px 0}
.bp-guide-grid b{display:block;font-size:11px;letter-spacing:.1em;margin-bottom:4px}
.bp-guide-grid p{margin:0;font-size:14px;line-height:1.55}
.bp-key-legend{font-size:13px}
.bp-key-legend kbd{border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:12px}
.bp-fine-print{font-size:12px;opacity:.8}
.bp-small-ticket{max-width:360px;text-align:center}
@media (max-width:640px){
 .bp-heading p{text-align:left}
 .bp-players{flex-wrap:wrap}
 .bp-table-brand{display:none}
 .bp-shot-row{gap:8px}
}
@media (max-height:500px){
 .bp-ticket{padding:12px 14px}
 .bp-ticket h2{font-size:20px;margin:2px 0 6px}
}
