.pui-card{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:52px;height:74px;border-radius:var(--cb-radius-sm);background:var(--cb-card-face);box-shadow:var(--cb-card-shadow);color:#1a1a1a;font-family:Inter,system-ui,sans-serif;font-size:var(--cb-text-sm);font-weight:600;line-height:1;-webkit-user-select:none;user-select:none;cursor:default;transform-style:preserve-3d;backface-visibility:hidden;will-change:transform,opacity;transition:transform .18s ease,box-shadow .18s ease}.pui-card[data-suit=hearts],.pui-card[data-suit=diamonds]{color:#c0392b}.pui-card[data-suit=spades],.pui-card[data-suit=clubs]{color:#1a1a1a}.pui-card-sm{width:38px;height:54px;font-size:10px;border-radius:6px}.pui-card-corner{position:absolute;top:3px;left:4px;font-size:9px;line-height:1;opacity:.85}.pui-card-corner-br{inset:auto 4px 3px auto;transform:rotate(180deg)}.pui-card-sm .pui-card-corner{font-size:7px;top:2px;left:3px}.pui-card-sm .pui-card-corner-br{bottom:2px;right:3px}.pui-card-rank{font-size:18px;font-weight:700;line-height:1}.pui-card-suit{font-size:16px;line-height:1;margin-top:1px}.pui-card-sm .pui-card-rank{font-size:var(--cb-text-sm)}.pui-card-sm .pui-card-suit{font-size:12px}.pui-card.is-playable{cursor:pointer}.pui-card.is-playable:hover{transform:translateY(-6px) scale(1.04);box-shadow:var(--cb-card-shadow-hover)}.pui-card.is-playable:active{transform:translateY(-2px) scale(.98)}.pui-card.is-selected{transform:translateY(-8px);box-shadow:var(--cb-card-shadow-hover),0 0 0 2px var(--cb-accent)}.pui-card.is-dimmed{opacity:.45;filter:grayscale(.3)}.pui-card-back{position:relative;display:inline-flex;align-items:center;justify-content:center;width:52px;height:74px;border-radius:var(--cb-radius-sm);background:linear-gradient(168deg,#1e0c18,#2a1020 48%,#1a0815);border:1.5px solid rgba(126,179,152,.28);box-shadow:var(--cb-card-shadow),inset 0 1px #ffffff0f,inset 0 -1px #0006;-webkit-user-select:none;user-select:none;will-change:transform,opacity;overflow:hidden}.pui-card-back:before{content:"";position:absolute;inset:3px;border-radius:calc(var(--cb-radius-sm) - 3px);border:1px solid rgba(126,179,152,.16);background:url(../branding/logo-card.png) center / auto 92% no-repeat;pointer-events:none}.pui-card-back:after{content:"";position:absolute;inset:0;border-radius:var(--cb-radius-sm);background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.2) 100%);pointer-events:none}.pui-card-back.pui-card-sm{width:38px;height:54px;border-radius:6px}.pui-card-flip-container{perspective:800px;display:inline-block}.pui-card-flip-inner{position:relative;transform-style:preserve-3d;transition:transform .4s ease;will-change:transform}.pui-card-flip-inner.is-flipped{transform:rotateY(180deg)}.pui-card-flip-inner>.pui-card{backface-visibility:hidden}.pui-card-flip-inner>.pui-card-back{position:absolute;top:0;left:0;backface-visibility:hidden;transform:rotateY(180deg)}.pui-hand{display:inline-flex;align-items:flex-end;justify-content:center;padding:var(--cb-space-1) var(--cb-space-2);pointer-events:auto;max-width:calc(100vw - 8px)}.pui-hand>.pui-card{margin-left:var(--pui-hand-overlap, -8px);transform-origin:center 95%;transform:rotate(var(--pui-fan-rotate, 0deg)) translateY(var(--pui-fan-rise, 0px));transition:transform .18s ease,box-shadow .18s ease}.pui-hand>.pui-card:first-child{margin-left:0}.pui-hand>.pui-card.is-playable:hover{transform:rotate(var(--pui-fan-rotate, 0deg)) translateY(calc(var(--pui-fan-rise, 0px) - 10px)) scale(1.06);box-shadow:var(--cb-card-shadow-hover);z-index:10}.pui-hand>.pui-card.is-playable:active{transform:rotate(var(--pui-fan-rotate, 0deg)) translateY(calc(var(--pui-fan-rise, 0px) - 4px)) scale(.97)}.pui-hand-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:2px}.pui-hand-row::-webkit-scrollbar{display:none}.pui-hand-row>.pui-card{margin-left:0;flex-shrink:0}.pui-trick-center{position:relative;display:grid;grid-template-areas:". n ." "w . e" ". s .";grid-template-columns:1fr auto 1fr;grid-template-rows:1fr auto 1fr;width:min(160px,44vw);height:min(120px,33vw);gap:2px;align-items:center;justify-items:center}.pui-trick-slot{will-change:transform,opacity}.pui-trick-slot[data-pos=n]{grid-area:n}.pui-trick-slot[data-pos=e]{grid-area:e}.pui-trick-slot[data-pos=s]{grid-area:s}.pui-trick-slot[data-pos=w]{grid-area:w}.pui-trick-empty{width:38px;height:54px;border-radius:6px;border:1px dashed var(--cb-text-muted, rgba(202, 215, 209, .44));opacity:.18;background:transparent}.pui-trick-slot>.pui-card{animation:pui-trick-snap .2s cubic-bezier(.22,1,.36,1) both}@keyframes pui-trick-snap{0%{opacity:0;transform:scale(.7) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.pui-seat-badge{display:inline-flex;align-items:center;gap:var(--cb-space-1);padding:3px 8px 3px 3px;border-radius:var(--cb-radius-full);background:#00000052;color:var(--cb-text-secondary);font-size:var(--cb-text-xs);font-weight:500;line-height:1.2;white-space:nowrap;will-change:transform,opacity;transition:box-shadow .3s ease,transform .2s ease}.pui-seat-avatar{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#ffffff14;color:var(--cb-text-primary);font-size:10px;font-weight:700;flex-shrink:0}.pui-seat-label{color:var(--cb-text-primary);font-size:var(--cb-text-xs)}.pui-seat-tricks{color:var(--cb-text-muted);font-size:10px;margin-left:2px}.pui-seat-badge.is-turn{box-shadow:0 0 0 1.5px var(--cb-accent),0 0 16px #7eb3984d,0 0 32px #7eb3981f;background:#7eb39824}.pui-seat-badge.is-turn .pui-seat-avatar{background:var(--cb-accent-muted);color:var(--cb-accent-strong, var(--cb-accent));box-shadow:0 0 12px #7eb39840}.pui-seat-badge.is-bot .pui-seat-avatar{border:1px solid rgba(255,255,255,.12)}.pui-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--cb-radius-full);font-size:var(--cb-text-xs);font-weight:500;line-height:1.3;white-space:nowrap}.pui-pill-default{background:#ffffff0f;color:var(--cb-text-secondary)}.pui-pill-active{background:var(--cb-accent-muted);color:var(--cb-accent-strong, var(--cb-accent))}.pui-pill-warning{background:#d8b46b29;color:var(--cb-warning)}.pui-pill-danger{background:#f58a8a29;color:var(--cb-danger)}.pui-pill-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pui-dot-pulse 1.6s ease-in-out infinite}@keyframes pui-dot-pulse{0%,to{opacity:1}50%{opacity:.35}}.pui-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border:1px solid rgba(255,255,255,.1);border-radius:var(--cb-radius-md);background:#ffffff0f;color:var(--cb-text-primary);font-size:var(--cb-text-sm);font-weight:500;line-height:1.2;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease,border-color .15s ease;min-height:44px;touch-action:manipulation}.pui-btn:hover{background:#ffffff1a;border-color:#ffffff29}.pui-btn:active{background:#ffffff0a}.pui-btn:disabled{opacity:.4;cursor:default;pointer-events:none}.pui-btn-primary{background:var(--cb-accent-muted);border-color:var(--cb-accent);color:var(--cb-accent-strong, var(--cb-accent))}.pui-btn-primary:hover{background:#7eb39852}.pui-btn-sm{padding:5px 10px;font-size:var(--cb-text-xs);min-height:32px;border-radius:var(--cb-radius-sm)}.pui-controls{display:flex;align-items:center;justify-content:center;gap:var(--cb-space-2);flex-wrap:wrap}.pui-pause-overlay{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--cb-space-3);background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.pui-pause-icon{font-size:32px;opacity:.6}.pui-pause-title{margin:0;color:var(--cb-text-primary);font-size:16px;font-weight:600}.pui-pause-desc{margin:0;color:var(--cb-text-secondary);font-size:var(--cb-text-sm);max-width:260px;text-align:center}@keyframes pui-deal-slide{0%{opacity:0;transform:translateY(-30px) translate(8px) rotate(-8deg) scale(.85)}60%{opacity:1;transform:translateY(-4px) translate(-2px) rotate(1deg) scale(1.02)}to{opacity:1;transform:translateY(0) translate(0) rotate(0) scale(1)}}.is-fx-deal .pui-card-back,.is-fx-deal .pui-card{animation:pui-deal-slide .28s cubic-bezier(.22,1,.36,1) both}.is-fx-trick-play .pui-trick-center .pui-trick-slot>.pui-card{animation:pui-card-play-snap .22s cubic-bezier(.22,1,.36,1) both}@keyframes pui-card-play-snap{0%{opacity:0;transform:scale(.6) translateY(20px);box-shadow:var(--cb-card-shadow)}50%{opacity:1;transform:scale(1.08) translateY(-2px);box-shadow:var(--cb-card-shadow-hover)}to{opacity:1;transform:scale(1) translateY(0);box-shadow:var(--cb-card-shadow-hover)}}.is-fx-trick-win .pui-trick-center{animation:pui-trick-win-glow .4s ease both}@keyframes pui-trick-win-glow{0%{filter:brightness(1)}40%{filter:brightness(1.3)}to{filter:brightness(1)}}.tarneeb-board-layer{position:absolute;inset:0;pointer-events:none}.tarneeb-seat-lane{position:absolute;left:var(--tarneeb-lane-x, 50%);top:var(--tarneeb-lane-y, 50%);transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:var(--cb-space-1);pointer-events:auto;z-index:3}.tarneeb-seat-lane-self{z-index:5}.tarneeb-trick-stack{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;z-index:4;pointer-events:none}.tarneeb-mid-center{display:flex;flex-direction:column;align-items:center;gap:6px}.tarneeb-top-info-rail{position:absolute;left:50%;transform:translate(-50%);display:flex;justify-content:center;z-index:8;pointer-events:none;max-width:96%}.tarneeb-top-info-content{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;pointer-events:auto}.tarneeb-status-row{position:absolute;left:50%;transform:translate(-50%);bottom:clamp(4%,7%,10%);display:flex;justify-content:center;z-index:8;pointer-events:none}.tarneeb-status-row>*{pointer-events:auto}.tarneeb-table[data-phase=TRICK_PLAY] .tarneeb-seat-lane[data-is-turn="1"],.tarneeb-table[data-phase=BIDDING] .tarneeb-seat-lane[data-is-turn="1"]{filter:drop-shadow(0 0 12px rgba(126,179,152,.28))}.tarneeb-info-bar{display:flex;flex-direction:column;gap:3px;padding:5px 10px;border-radius:var(--cb-radius-md);background:var(--cb-glass-bg);backdrop-filter:blur(var(--cb-glass-blur));-webkit-backdrop-filter:blur(var(--cb-glass-blur));box-shadow:var(--cb-glass-highlight),var(--cb-glass-shadow)}.tarneeb-info-bar-compact{padding:3px 7px}.tarneeb-score{display:flex;align-items:center;gap:var(--cb-space-2);font-size:var(--cb-text-xs);color:var(--cb-text-secondary)}.tarneeb-score-compact{font-size:10px;gap:6px}.tarneeb-score-team{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.tarneeb-score-val{color:var(--cb-text-primary);font-weight:600;font-variant-numeric:tabular-nums}.tarneeb-score-players{opacity:.7;font-size:10px}.tarneeb-info-bar.is-fx-round-scored{animation:pui-score-flash .5s ease both}@keyframes pui-score-flash{0%{box-shadow:var(--cb-glass-highlight),var(--cb-glass-shadow)}30%{box-shadow:var(--cb-glass-highlight),var(--cb-glass-shadow),0 0 20px #7eb3984d}to{box-shadow:var(--cb-glass-highlight),var(--cb-glass-shadow)}}.tarneeb-trump{font-size:clamp(13px,3.2vw,16px);font-weight:700;color:var(--cb-text-primary);white-space:nowrap;padding:2px 8px;border-radius:var(--cb-radius-full, 999px);background:#7eb39824;border:1px solid rgba(126,179,152,.28)}.tarneeb-trump.is-fx-trump-reveal{animation:pui-trump-reveal .35s ease both}@keyframes pui-trump-reveal{0%{opacity:0;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){.pui-card{width:46px;height:66px;font-size:12px}.pui-card-corner{font-size:8px}.pui-card-rank{font-size:16px}.pui-card-suit{font-size:14px}.pui-card-back{width:46px;height:66px}.pui-trick-center{width:140px;height:105px}.pui-trick-empty{width:34px;height:48px}.pui-seat-badge{font-size:10px}.pui-seat-avatar{width:20px;height:20px;font-size:9px}.pui-pause-overlay,.pui-game-menu-overlay,.tarneeb-info-bar,.pui-controls-tray{backdrop-filter:none;-webkit-backdrop-filter:none}}@media(orientation:landscape)and (max-height:500px){.pui-hand{padding:2px var(--cb-space-1)}.pui-card{width:40px;height:56px;font-size:10px;border-radius:6px}.pui-card-back{width:40px;height:56px;border-radius:6px}.pui-card-rank{font-size:var(--cb-text-sm)}.pui-card-suit{font-size:12px}.pui-card-corner{font-size:7px;top:2px;left:2px}.pui-card-corner-br{bottom:2px;right:2px}.pui-trick-center{width:110px;height:80px}.pui-trick-empty{width:28px;height:40px}}@media(max-width:480px){.pui-card{width:42px;height:60px;font-size:var(--cb-text-xs);border-radius:6px}.pui-card-corner{font-size:7px;top:2px;left:3px}.pui-card-corner-br{bottom:2px;right:3px}.pui-card-rank{font-size:14px}.pui-card-suit{font-size:var(--cb-text-sm)}.pui-card-back{width:42px;height:60px;border-radius:6px}.pui-trick-center{width:120px;height:90px}.pui-trick-empty{width:30px;height:42px}.pui-hand{padding:2px var(--cb-space-1)}.pui-seat-badge{font-size:10px;padding:2px 6px 2px 2px}.pui-seat-avatar{width:18px;height:18px;font-size:9px}.pui-pill{font-size:10px;padding:3px 8px}}.pui-controls-tray{position:absolute;bottom:28%;right:4%;display:flex;align-items:center;gap:var(--cb-space-1);z-index:10;pointer-events:auto;padding:3px 6px;border-radius:var(--cb-radius-full);background:#12211c85;border:1px solid rgba(126,179,152,.12);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:border-color .2s ease}.pui-controls-tray:hover{border-color:#7eb39847}.pui-game-status{position:absolute;bottom:28%;left:4%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;z-index:7;pointer-events:none}.pui-game-menu-trigger{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--cb-radius-full);background:transparent;color:var(--cb-text-secondary);cursor:pointer;transition:background .16s ease,color .16s ease;pointer-events:auto;-webkit-tap-highlight-color:transparent}.pui-game-menu-trigger:hover{background:#7eb3982e;color:var(--cb-text-primary)}.pui-game-menu-trigger svg{display:block;flex-shrink:0}.pui-game-menu-overlay{position:absolute;inset:0;z-index:25;display:flex;align-items:center;justify-content:center;background:#0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.pui-game-menu-sheet{width:min(88%,22rem);padding:var(--cb-space-4);border-radius:var(--cb-radius-xl);background:linear-gradient(168deg,#12211cf5,#090b0cfa);border:1px solid rgba(126,179,152,.24);box-shadow:0 24px 64px #0000008f,inset 0 1px #7eb3981a}.pui-game-menu-title{margin:0 0 var(--cb-space-3);font-size:var(--cb-text-lg);font-weight:600;color:var(--cb-text-primary);text-align:center}.pui-game-menu-list{display:grid;gap:var(--cb-space-2);margin-bottom:var(--cb-space-3)}.pui-game-menu-item{display:flex;align-items:center;gap:var(--cb-space-2);width:100%;padding:var(--cb-space-2) var(--cb-space-3);border:1px solid rgba(126,179,152,.12);border-radius:var(--cb-radius-md);background:#7eb3980d;color:var(--cb-text-primary);font-size:var(--cb-text-sm);font-weight:500;cursor:pointer;transition:background .16s ease,border-color .16s ease;text-align:start}.pui-game-menu-item:hover{background:#7eb39824;border-color:#7eb3984d}.pui-game-menu-close{width:100%}.pui-score-trigger{font-size:14px}@media(prefers-reduced-motion:reduce){.pui-card,.pui-card-back,.pui-seat-badge,.pui-pill-dot,.pui-trick-slot>.pui-card,.tarneeb-info-bar,.tarneeb-trump,.pui-game-menu-trigger,.pui-game-menu-item{animation:none!important;transition:none!important}}
