/* Pocket tools, styled as another small box on the club's table. */
.footer-tabletop .bt-footer-strip { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:24px 36px; border-bottom:2px solid var(--color-ink); background:var(--color-paper); }
.footer-tabletop .bt-footer-copy { display:flex; align-items:center; gap:16px; min-width:0; }
.footer-tabletop .bt-footer-copy h3 { margin:0 0 4px; font-size:1.3rem; }
.footer-tabletop .bt-footer-copy p { margin:0; font-size:.85rem; line-height:1.5; }
.bt-footer-symbol { display:grid; place-items:center; width:48px; height:48px; flex:0 0 48px; border:2px solid var(--color-ink); border-radius:12px; background:var(--color-yellow); transform:rotate(-8deg); }
.bt-footer-symbol svg { width:29px; height:29px; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; fill:none; }
.bt-launch { display:inline-flex; align-items:center; justify-content:center; gap:10px; flex-shrink:0; min-height:44px; padding:11px 16px; border:2px solid var(--color-ink); border-radius:999px; background:var(--color-paper); box-shadow:3px 3px 0 var(--color-ink); font:600 .85rem/1.4 var(--font-body); color:var(--color-ink); cursor:pointer; }
.bt-launch[hidden] { display:none; }
.bt-launch:hover { background:var(--color-yellow); }
.bt-launch:active { transform:translate(2px,2px); box-shadow:1px 1px 0 var(--color-ink); }
html.bt-open { overflow:hidden; }
.bt-dialog { width:min(860px,calc(100% - 40px)); max-width:none; max-height:calc(100dvh - 48px); margin:auto; padding:0; background:var(--color-paper); color:var(--color-ink); border:3px solid var(--color-ink); border-radius:16px; box-shadow:7px 7px 0 var(--color-ink); overflow:auto; overscroll-behavior:contain; font:400 16px/1.5 var(--font-body); color-scheme:light; }
.bt-dialog::backdrop { background:#0008; backdrop-filter:blur(3px); }
.bt-dialog *, .bt-dialog *::before, .bt-dialog *::after { box-sizing:border-box; }
.bt-dialog [hidden] { display:none!important; }
.bt-dialog h2,.bt-dialog h3,.bt-dialog p { margin:0; text-align:left; }
.bt-dialog h2,.bt-dialog h3 { font-family:var(--font-display); font-weight:400; letter-spacing:0; text-transform:none; }
.bt-dialog button,.bt-dialog input,.bt-dialog textarea { font-family:var(--font-body); }
.bt-dialog button { cursor:pointer; color:var(--color-ink); }
.bt-dialog :focus-visible,.bt-launch:focus-visible { outline:3px solid var(--color-ink); outline-offset:3px; }
.bt-dialog button:disabled { opacity:.42; cursor:default; }
.bt-chrome { position:sticky; top:0; z-index:4; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:7px 14px 7px 24px; border-bottom:2px solid var(--color-ink); background:var(--color-paper); font-size:12px; }
.bt-chrome > div { display:flex; align-items:center; gap:12px; }
.bt-dots { display:flex; gap:6px; }
.bt-dots i { width:9px; height:9px; border:1.5px solid var(--color-ink); border-radius:50%; background:var(--color-teal); }
.bt-dots i:nth-child(2) { background:var(--color-coral); }
.bt-dots i:nth-child(3) { background:var(--color-yellow); }
.bt-close { width:44px; height:44px; padding:10px; border:0; border-radius:50%; background:transparent; display:grid; place-items:center; }
.bt-close:hover { background:var(--color-yellow); }
.bt-close svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.bt-heading { padding:26px 30px 22px; background:var(--color-teal-soft); border-bottom:2px solid var(--color-ink); }
.bt-dialog .bt-eyebrow { font-size:11px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; margin-bottom:8px; }
.bt-heading h2 { font-size:40px; line-height:1.1; outline:none; }
.bt-content { padding:24px 30px 30px; }
.bt-note { font-size:13px; color:var(--color-teal-text); line-height:1.6; }
.bt-catalog-intro { margin-bottom:22px!important; }
.bt-catalog { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.bt-tool-card { display:flex; flex-direction:column; gap:14px; border:2px solid var(--color-ink); border-radius:12px; padding:20px 18px; background:var(--color-paper); box-shadow:4px 4px 0 var(--color-ink); text-align:left; transition:transform .15s; }
.bt-tool-card:hover { transform:translateY(-3px); }
.bt-tool-art { display:grid; place-items:center; min-height:116px; width:100%; border:1.5px solid var(--color-ink); border-radius:10px; background:var(--color-teal-soft); }
.bt-tool-card:nth-child(2) .bt-tool-art { background:var(--color-yellow); }
.bt-tool-card:nth-child(3) .bt-tool-art { background:#ffe0da; }
.bt-tool-art svg { width:76px; height:76px; fill:var(--color-paper); stroke:var(--color-ink); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transform:rotate(-8deg); }
.bt-tool-card:nth-child(2) svg { transform:rotate(6deg); }
.bt-card-title { font:400 26px/1.1 var(--font-display); }
.bt-card-description { font-size:13px; line-height:1.5; }
.bt-card-link { display:flex; gap:8px; align-items:center; margin-top:auto; font-size:12px; font-weight:600; }
.bt-card-link svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.bt-dialog .bt-catalog-foot { margin-top:24px; font-size:12px; color:var(--color-teal-text); }
.bt-nav { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:22px; }
.bt-back { display:inline-flex; gap:5px; align-items:center; border:0; background:transparent; min-height:44px; padding:8px 10px 8px 0; font-size:12px; font-weight:600; }
.bt-back svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.bt-tabs { display:flex; gap:6px; flex-wrap:wrap; }
.bt-tab { border:2px solid var(--color-ink); border-radius:999px; background:var(--color-paper); min-height:40px; padding:7px 13px; font-size:12px; font-weight:600; }
.bt-tab[aria-selected="true"] { background:var(--color-yellow); }
.bt-panel h3 { font-size:29px; line-height:1.15; margin-bottom:7px; }
.bt-tool-layout { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; margin-top:22px; }
.bt-settings { min-width:0; }
.bt-field { display:block; margin-bottom:20px; }
.bt-label { display:block; font-size:13px; font-weight:600; margin-bottom:9px; }
.bt-sides { display:flex; flex-wrap:wrap; gap:8px; }
.bt-side { border:2px solid var(--color-ink); border-radius:9px; background:var(--color-paper); min-height:44px; min-width:51px; padding:8px 10px; font-size:13px; font-weight:600; }
.bt-side[aria-pressed="true"] { background:var(--color-teal); box-shadow:2px 2px 0 var(--color-ink); }
.bt-stepper { display:inline-flex; align-items:center; gap:18px; border:2px solid var(--color-ink); border-radius:999px; padding:4px; background:var(--color-paper); }
.bt-stepper button { border:0; background:var(--color-teal-soft); width:36px; height:36px; border-radius:50%; font-size:22px; line-height:1; }
.bt-stepper output { min-width:24px; text-align:center; font:400 24px/1 var(--font-display); }
.bt-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:2px solid var(--color-ink); border-radius:999px; background:var(--color-teal); padding:11px 18px; min-height:46px; box-shadow:3px 3px 0 var(--color-ink); font-size:14px; font-weight:600; }
.bt-button:hover:not(:disabled) { background:var(--color-yellow); }
.bt-button:active:not(:disabled) { transform:translate(2px,2px); box-shadow:1px 1px 0 var(--color-ink); }
.bt-button-secondary { background:var(--color-paper); box-shadow:none; }
.bt-result { border:2px solid var(--color-ink); border-radius:12px; background:var(--color-teal-soft); padding:22px; min-height:242px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:17px; text-align:center; }
.bt-result .bt-note { text-align:center; }
.bt-result-placeholder { font:400 30px/1.2 var(--font-display); max-width:12ch; }
.bt-rolls { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; }
.bt-die { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; width:61px; min-height:70px; background:var(--color-paper); border:2px solid var(--color-ink); border-radius:10px; box-shadow:2px 2px 0 var(--color-ink); }
.bt-die:nth-child(3n + 2) { background:var(--color-yellow); }
.bt-die:nth-child(3n) { background:#ffe0da; }
.bt-die strong { font:400 30px/1 var(--font-display); }
.bt-die small { font-size:10px; font-weight:600; }
.bt-total { display:flex; align-items:center; gap:10px; font-size:13px; }
.bt-total strong { font:400 38px/1 var(--font-display); }
.bt-result[data-busy="true"] .bt-rolls { animation:bt-tumble .36s ease-in-out; }
.bt-result[data-busy="true"] .bt-player-token { animation:bt-pick .4s ease-in-out; }
.bt-player-token { width:92px; height:92px; display:grid; place-items:center; border:2px solid var(--color-ink); border-radius:50%; box-shadow:4px 4px 0 var(--color-ink); background:var(--color-yellow); font:400 43px/1 var(--font-display); }
.bt-dialog .bt-winner { font:400 clamp(27px,4vw,39px)/1.15 var(--font-display); text-align:center; overflow-wrap:anywhere; max-width:100%; }
.bt-names { margin:16px 0 20px; font-size:13px; }
.bt-names summary { min-height:44px; padding:10px 0; cursor:pointer; font-weight:600; }
.bt-names textarea { display:block; width:100%; min-height:110px; resize:vertical; margin:9px 0; padding:10px 12px; border:2px solid var(--color-ink); border-radius:9px; background:var(--color-paper); font-size:16px; color:var(--color-ink); }
.bt-names label { display:block; margin-top:8px; }
.bt-dialog .bt-error { font-size:13px; color:#963428; margin-top:12px; }
.bt-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.bt-score-toolbar { display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin:20px 0; }
.bt-score-toolbar label { display:flex; align-items:center; gap:10px; font-size:13px; font-weight:600; }
.bt-score-step { width:76px; padding:10px; border:2px solid var(--color-ink); border-radius:8px; background:var(--color-paper); font-size:16px; color:var(--color-ink); }
.bt-score-actions { display:flex; gap:8px; flex-wrap:wrap; }
.bt-score-actions button { font-size:12px; min-height:44px; padding:8px 13px; }
.bt-score-list { display:grid; gap:10px; }
.bt-score-row { display:grid; grid-template-columns:24px minmax(0,1fr) auto 32px; align-items:center; gap:10px; padding:13px 15px; border:2px solid var(--color-ink); border-radius:10px; background:var(--color-paper); }
.bt-player-dot { width:20px; height:20px; border:2px solid var(--color-ink); border-radius:50%; background:var(--bt-player-color); }
.bt-score-name { width:100%; min-width:0; padding:7px 0; border:0; border-bottom:1px dashed var(--color-divider); background:transparent; font-size:16px; font-weight:600; color:var(--color-ink); }
.bt-score-controls { display:flex; align-items:center; gap:12px; }
.bt-score-controls button { width:44px; height:44px; border:2px solid var(--color-ink); border-radius:50%; font-size:23px; background:var(--color-teal-soft); }
.bt-score-controls button:last-child { background:var(--color-yellow); }
.bt-score-number { min-width:58px; font:400 31px/1 var(--font-display); text-align:center; font-variant-numeric:tabular-nums; }
.bt-remove { width:32px; height:44px; border:0; background:transparent; font-size:20px; }
.bt-score-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:18px; }
.bt-score-footer .bt-note { font-size:12px; text-align:right; }
@keyframes bt-tumble { 0%,100% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-8px) rotate(-5deg); } 70% { transform:translateY(3px) rotate(4deg); } }
@keyframes bt-pick { 0%,100% { transform:scale(1) rotate(0); } 50% { transform:scale(.88) rotate(-12deg); } }
@media(max-width:800px) {
 .footer-tabletop .bt-footer-strip { padding:22px 28px; }
}
@media(max-width:600px) {
 .footer-tabletop .bt-footer-strip { align-items:flex-start; flex-direction:column; gap:18px; padding:22px; }
 .footer-tabletop .bt-footer-copy { gap:12px; }
 .bt-footer-symbol { width:40px; height:40px; flex-basis:40px; }
 .bt-footer-symbol svg { width:25px; height:25px; }
 .footer-tabletop .bt-footer-copy h3 { font-size:1.2rem; }
 .bt-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 24px); border-radius:14px; box-shadow:4px 4px 0 var(--color-ink); }
 .bt-chrome { padding-left:16px; font-size:11px; }
 .bt-chrome > div { gap:9px; }
 .bt-heading { padding:20px; }
 .bt-heading h2 { font-size:34px; }
 .bt-dialog[data-view="tool"] .bt-heading { padding:12px 20px; }
 .bt-dialog[data-view="tool"] .bt-heading h2 { font-size:24px; }
 .bt-dialog[data-view="tool"] .bt-heading .bt-eyebrow { display:none; }
 .bt-content { padding:20px; }
 .bt-catalog { grid-template-columns:1fr; gap:14px; }
 .bt-tool-card { display:grid; grid-template-columns:70px minmax(0,1fr); gap:6px 14px; padding:15px; box-shadow:3px 3px 0 var(--color-ink); }
 .bt-tool-art { grid-row:1 / span 3; min-height:86px; }
 .bt-tool-art svg { width:52px; height:52px; }
 .bt-card-title { font-size:24px; }
 .bt-card-description { font-size:12px; }
 .bt-card-link { font-size:11px; margin-top:3px; }
 .bt-nav { gap:4px; }
 .bt-back { width:100%; min-height:36px; }
 .bt-tab { padding:7px 11px; font-size:11px; min-height:40px; }
 .bt-tool-layout { grid-template-columns:1fr; gap:20px; }
 .bt-field { margin-bottom:15px; }
 .bt-result { min-height:190px; padding:20px; }
 .bt-score-row { grid-template-columns:20px minmax(0,1fr) 28px; gap:10px; padding:12px; }
 .bt-score-controls { grid-row:2; grid-column:2; justify-content:flex-start; gap:12px; }
 .bt-score-number { min-width:68px; }
 .bt-remove { grid-row:1; grid-column:3; width:28px; }
 .bt-score-footer { flex-direction:column; align-items:flex-start; }
 .bt-score-footer .bt-note { text-align:left; }
}
@media(prefers-reduced-motion:reduce) {
 .bt-dialog *, .bt-tool-card { animation:none!important; transition:none!important; }
}
