/* tafra — dedicated layout; no game rules or private projections changed. */
body[data-play-game="tafra"].jalsa-active{background:#E9E1D2}
body[data-play-game="tafra"].jalsa-active #app{max-width:1450px}
body[data-play-game="tafra"] .tfPlay .tfBoard{background:#6B4E45;box-shadow:0 0 0 6px #6B4E45,0 0 0 8px #c7ad90;border-radius:8px;padding:4px;gap:2px}
body[data-play-game="tafra"] .tfPlay .tfCenter{background:#e8ddc8;box-shadow:inset 0 0 0 2px #c4b092;border-radius:3px;--accent:#6B4E45}
body[data-play-game="tafra"] .tfCenterTitle{font:700 clamp(26px,calc(var(--bw)*.075),48px) var(--body);color:#6B4E45}
body[data-play-game="tafra"] .tfPlay .tfSq{border-radius:1px}
body[data-play-game="tafra"] .tfPlay .tfSq.is-current{outline:2px solid var(--pc,#A32B38);outline-offset:-2px}
body[data-play-game="tafra"] .tfPlay .tfBanner{background:#231F20;color:#F4EADA;border:0;border-right:5px solid var(--pc);border-radius:8px;padding:16px 20px}
body[data-play-game="tafra"] .tfPlay .tfBanner span{color:#DCCFC2}
body[data-play-game="tafra"] .tfProgress{gap:7px;padding-bottom:14px}
body[data-play-game="tafra"] .tfProgress>span{border-radius:4px;font-size:11px}
body[data-play-game="tafra"] .tfHandBox h3{font-size:17px}
body[data-play-game="tafra"] .tfPlay .tfLay{gap:28px}
body[data-play-game="tafra"] .tfSide{display:flex;flex-direction:column;gap:18px}
body[data-play-game="tafra"] .tfControls{background:#FBF6EE;border:1px solid #d4c0aa;border-radius:8px 8px 16px 16px;padding:20px;border-top:5px solid var(--j-wine)}
body[data-play-game="tafra"] .tfStage{border:1px solid var(--j-line);background:var(--j-paper);border-radius:10px;padding:18px}
body[data-play-game="tafra"] .tfPlay .tfRoster{gap:10px;padding:12px;background:var(--j-surface);border:1px solid var(--j-line);border-radius:14px}
body[data-play-game="tafra"] .tfPl{border-radius:10px;min-width:0}
body[data-play-game="tafra"] .tfBanner{min-height:82px}
body[data-play-game="tafra"] .tfHandBox{background:#e2d2b9;border:1px solid #bfa98f;border-radius:14px;padding:20px;margin-top:4px}
body[data-play-game="tafra"] .tfHandHint{font-size:12px;line-height:1.9}
body[data-play-game="tafra"] .tfHand{padding-block:18px;gap:10px;scrollbar-width:thin}
body[data-play-game="tafra"] .tfKBtn:focus-visible{outline:3px solid var(--j-wine)}
body[data-play-game="tafra"] .tfContracts{border-top:1px solid var(--j-line);padding-top:15px}
body[data-play-game="tafra"] .tfHistory{background:#FBF6EE;border:1px solid #d4c0aa;border-radius:12px;padding:14px 18px}
body[data-play-game="tafra"] .tfPlayerDetails{border:1px solid var(--j-line);border-radius:10px;overflow:hidden}
body[data-play-game="tafra"] .tfPlayerDetails summary{min-height:44px;padding:12px 16px;cursor:pointer;background:var(--j-surface)}
body[data-play-game="tafra"] .tfSheet{backdrop-filter:blur(5px);padding:16px}
body[data-play-game="tafra"] .tfSheetBox{background:#FBF6EE;border-radius:18px;border:1px solid #d4c0aa;box-shadow:0 24px 80px #231f2040;max-height:88dvh;overflow:auto;padding:25px}
body[data-play-game="tafra"] .tfModal{background:#231F20;border:1px solid #6B4E45;border-radius:16px;box-shadow:0 20px 80px #29242166;max-height:88dvh;overflow:auto}
body[data-play-game="tafra"] .tfBids,body[data-play-game="tafra"] .tfRows{gap:10px}
body[data-play-game="tafra"] .tfRow{padding:12px;border-bottom:1px solid var(--j-line)}
body[data-play-game="tafra"] .tfRank{border-radius:12px;overflow:hidden}
body[data-play-game="tafra"] .tfCount,body[data-play-game="tafra"] .tfSeg{gap:10px}
body[data-play-game="tafra"] .tfSeg button{min-height:46px}
body[data-play-game="tafra"] .tfSeat{padding:16px;border:1px solid var(--j-line);border-radius:12px;background:var(--j-surface)}
@media(min-width:1100px){body[data-play-game="tafra"] .tfPlay .tfLay{grid-template-columns:minmax(0,1fr) 350px}
body[data-play-game="tafra"] .tfSide{position:sticky;top:18px}}
@media(max-width:700px){body[data-play-game="tafra"] .tfPlay .tfBanner{padding:14px 16px}
body[data-play-game="tafra"] .tfPlay .tfBoard{box-shadow:0 0 0 3px #6B4E45,0 0 0 4px #c7ad90}
body[data-play-game="tafra"] .tfPlay .tfLay{gap:20px}
body[data-play-game="tafra"] .tfPlay .tfRoster{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:9px}
body[data-play-game="tafra"] .tfControls{padding:16px}
body[data-play-game="tafra"] .tfHandBox{padding:16px}
body[data-play-game="tafra"] .tfSheetBox{padding:20px}
body[data-play-game="tafra"] .tfSheet{padding:10px}
body[data-play-game="tafra"] .tfStage .btn{width:100%}
body[data-play-game="tafra"] .tfPlayerDetails summary{font-size:14px}}
