.mobile-menu-toggle{display:none}
button,a,input,summary{touch-action:manipulation}
@media(max-width:600px){
 html{-webkit-text-size-adjust:100%;scroll-padding-bottom:env(safe-area-inset-bottom)}
 body.in-game{min-height:100svh}
 body.in-game header{height:48px;padding:0 max(12px,env(safe-area-inset-left));position:relative;z-index:30}
 body.in-game .brand>span:last-child{display:block;font-size:9px}
 body.in-game .mobile-menu-toggle{display:block;margin-left:auto;min-width:44px;min-height:44px;border:0;background:transparent;color:#dce7dc;font-size:22px;border-radius:8px}
 body.in-game .header-right{display:none;position:absolute;right:10px;top:46px;padding:8px;background:#172b23;border:1px solid #b6c6aa33;border-radius:12px;box-shadow:0 10px 30px #0007}
 body.in-game.header-menu-open .header-right{display:flex;flex-direction:column;align-items:stretch;gap:4px}
 body.in-game .header-right .quiet{font-size:12px;min-height:44px;padding:10px 16px;text-align:left;border-radius:7px}
 body.in-game main{padding:0 max(6px,env(safe-area-inset-left)) max(10px,env(safe-area-inset-bottom))}
 .room-heading{margin:6px 5px;min-height:44px}.room-heading h2{font-size:17px}
 .room-tools{gap:5px}.room-tools .quiet{min-height:44px;min-width:44px;padding:9px 11px;font-size:11px}
 .table-wrap{border-radius:15px}
 .live-score{padding:10px 13px;gap:10px}.live-points-line{margin:4px 0}.live-points-line>strong{font-size:25px}.live-team-heading>span{font-size:10px}.live-goal{margin-top:4px;font-size:8px}.live-round>strong{font-size:22px}
 .table-top{padding:9px 13px 8px;font-size:8px}.table-top #phase-badge{font-size:8px}
 .deal-strip{padding:0 14px 9px;font-size:10px}.play-direction{font-size:9px}
 .felt,.table-wrap[data-phase=bid] .felt,.table-wrap[data-phase=trump] .felt{height:clamp(250px,34svh,290px);margin:0 9px;border-radius:22px}
 .seat.top{top:10px}.seat.bottom{bottom:9px}.seat.left,.seat.right{top:46%}.seat span{font-size:10px}.seat small{font-size:7px}
 .avatar{width:32px;height:32px;font-size:16px;margin-bottom:4px}.seat .seat-call{max-width:78px;font-size:7px}
 .table-side-score{top:12px;width:85px}.table-side-score .score-pair{width:93px;min-width:93px;height:82px;margin-bottom:-20px}.table-side-score .team-score span{font-size:9px}.table-side-score .set-tokens{margin-top:3px}
 .center,.table-wrap[data-phase=bid] .center,.table-wrap[data-phase=trump] .center{top:53%;width:52%}.center h3{font-size:19px}.center p{font-size:9px}.table-wordmark{bottom:73px}
 .played{inset:75px 38px 70px}.played .card{width:45px}.played .p0,.played .p2{left:calc(50% - 22px)}.played .p1{left:calc(50% - 59px)}.played .p3{right:calc(50% - 59px)}
 .board-context{padding:9px 11px 0}.trump-panel{padding:7px 9px;gap:8px}.trump-display strong{font-size:12px}.trump-display small,.marriage-display small{font-size:9px}.trump-display .eyebrow{font-size:7px}.marriage-display strong{font-size:10px}
 .controls{padding:10px 12px 5px}.status-label{font-size:11px}.controls button.primary{min-height:44px;font-size:12px}
 .hand-section,.table-wrap[data-phase=bid] .hand-section{padding:12px 12px 10px}.hand-heading{font-size:9px;margin-bottom:10px}#hint{font-size:10px}
 .hand{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 9px;max-width:290px;margin:0 auto;padding:3px 3px 7px;min-height:0;perspective:none}
 .hand .card,.table-wrap[data-phase=bid] .hand .card{width:100%;height:auto;aspect-ratio:5/7;min-width:0;min-height:44px;flex:none;margin:0;transform:none;align-self:start}
 .hand:has(>.card:last-child:nth-child(-n+3)){grid-template-columns:repeat(3,minmax(0,1fr));max-width:220px}
 .bid-actions>button{min-height:65px}.bid-amounts{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.bid-amounts button{min-height:44px;font-size:12px}.bid-help{font-size:9px}.bid-panel-heading>span{font-size:9px}.bid-panel-heading small{font-size:10px}
 .suit-choice{min-height:65px}.suit-choice strong{font-size:10px}.seventh-choice{min-height:60px}.table-history summary{min-height:44px;padding:14px 0;font-size:11px}
 input{font-size:16px}.play-panel .mode{min-height:70px}dialog{max-height:calc(100svh - 24px);overflow:auto}dialog .close{min-width:44px;min-height:44px}.table-event{white-space:normal;width:max-content;max-width:85%;font-size:10px}
 #toast{bottom:calc(12px + env(safe-area-inset-bottom));font-size:12px}
}
@media(max-width:360px){.live-score{gap:7px;padding:10px}.live-team-heading>span{font-size:9px}.room-tools .quiet{font-size:10px;padding:8px}.table-side-score{width:74px}.score-side-a{left:1px}.score-side-b{right:1px}.table-side-score .score-pair{width:83px;min-width:83px;height:75px;margin-bottom:-19px}.hand{gap:10px 8px}.center h3{font-size:17px}}
@media(hover:none){.hand .card:not(:disabled):hover{transform:none;filter:none}.quiet:hover{transform:none}.hand .card:active:not(:disabled){transform:translateY(-3px)}}

/* The active avatar carries the countdown so it is visible beside the player. */
.seat.active .avatar{position:relative;isolation:isolate;--clock-color:#edcc83}
.seat.active .avatar:before{content:'';position:absolute;inset:-5px;border-radius:50%;background:conic-gradient(var(--clock-color) calc(var(--time-left,1)*360deg),#ffffff12 0);mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 0);pointer-events:none}
.seat.active .avatar.time-urgent{--clock-color:#ff8d78}
.seat .avatar .avatar-clock{position:absolute;top:-10px;right:-12px;z-index:4;display:flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 3px;border-radius:7px;background:#edcc83;color:#172b23;font:700 11px/1 Arial,sans-serif;box-shadow:0 2px 6px #0004}
.seat .avatar.time-urgent .avatar-clock{background:#ff8d78}
.turn-meter{display:none}

.live-team-heading{min-height:28px}.live-team-heading>span{line-height:1.3;overflow-wrap:anywhere}.table-side-score .team-score>span{min-width:0;flex:1}.table-side-score [id^="team-label-"]{display:block;min-width:0}.table-side-score [id^="team-label-"]>span{display:block;font-size:8px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-side-score .team-score b{flex-shrink:0}.seat small{overflow-wrap:anywhere}
