.start-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:24px}.start-screen__title{font-size:48px;font-weight:700;letter-spacing:2px}.start-screen__field{display:flex;flex-direction:column;align-items:center;gap:8px}.start-screen__nickname{width:200px;padding:8px 12px;font-size:16px;font-family:inherit;text-align:center;border:2px solid var(--color-text-muted);border-radius:8px;background:transparent;color:var(--color-text);outline:none}.start-screen__nickname:focus{border-color:gold}.start-screen__options{display:flex;flex-direction:column;align-items:center;gap:12px}.start-screen__label{font-size:18px;color:var(--color-text-muted)}.start-screen__buttons{display:flex;gap:8px}.start-screen__count{width:44px;height:44px;border:2px solid var(--color-text-muted);border-radius:8px;background:transparent;color:var(--color-text);font-size:18px;font-weight:600}.start-screen__count--active{border-color:gold;background:#ffd70026;color:gold}.start-screen__seats{display:flex;flex-direction:column;gap:8px;width:260px}.start-screen__seat-row{display:flex;align-items:center;justify-content:space-between}.start-screen__seat-label{font-size:14px;color:var(--color-text-muted)}.start-screen__seat-toggles{display:flex;gap:4px}.start-screen__seat-btn{padding:4px 12px;font-size:14px;font-weight:600;font-family:inherit;border:2px solid var(--color-text-muted);border-radius:6px;background:transparent;color:var(--color-text)}.start-screen__seat-btn--active{border-color:gold;background:#ffd70026;color:gold}.start-screen__contact-select{padding:4px 8px;font-size:13px;font-family:inherit;border:2px solid var(--color-text-muted);border-radius:6px;background:transparent;color:var(--color-text)}.start-screen__start{padding:12px 40px;font-size:20px;font-weight:600;border:none;border-radius:8px;background:gold;color:var(--color-black)}.start-screen__start:hover:not(:disabled){background:#ffe44d}.start-screen__start:disabled{opacity:.4;cursor:not-allowed}.start-screen--scanning{position:relative;overflow:hidden}.start-screen__video{width:100%;height:100%;object-fit:cover}.start-screen__scan-cancel{position:absolute;bottom:40px;left:50%;transform:translate(-50%);padding:12px 40px;font-size:18px;font-weight:600;font-family:inherit;border:2px solid rgba(255,255,255,.8);border-radius:8px;background:#00000080;color:#fff;z-index:1}.start-screen__scan{padding:10px 32px;font-size:16px;font-weight:600;font-family:inherit;border:2px solid var(--color-text-muted);border-radius:8px;background:transparent;color:var(--color-text)}.start-screen__scan:hover{background:#ffffff1a;border-color:var(--color-text)}.start-screen__paste-toggle{padding:6px 20px;font-size:14px;font-weight:600;font-family:inherit;border:none;border-radius:8px;background:transparent;color:var(--color-text-muted)}.start-screen__paste-toggle:hover{color:var(--color-text)}.start-screen__paste{display:flex;gap:8px;align-items:center}.start-screen__paste-input{width:200px;padding:8px 12px;font-size:14px;font-family:inherit;border:2px solid var(--color-text-muted);border-radius:8px;background:transparent;color:var(--color-text);outline:none}.start-screen__paste-input:focus{border-color:gold}.start-screen__paste-go{padding:8px 20px;font-size:14px;font-weight:600;font-family:inherit;border:none;border-radius:8px;background:gold;color:var(--color-black)}.start-screen__paste-go:disabled{opacity:.4;cursor:not-allowed}.waiting-room{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:24px}.waiting-room__title{font-size:28px;font-weight:700}.waiting-room__seats{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.waiting-room__chip{display:flex;align-items:center;padding:6px 14px;border-radius:8px;background:#ffffff14;font-size:14px;color:var(--color-text-muted)}.waiting-room__chip--waiting{animation:waiting-pulse 1.8s ease-in-out infinite}@keyframes waiting-pulse{0%,to{opacity:1}50%{opacity:.4}}.waiting-room__qr{max-width:280px;background:#fff;padding:12px;border-radius:8px}.waiting-room__qr svg{display:block;width:100%;height:auto}.waiting-room__start{padding:12px 40px;font-size:20px;font-weight:600;font-family:inherit;border:none;border-radius:8px;background:gold;color:var(--color-black)}.waiting-room__start:hover:not(:disabled){background:#ffe44d}.waiting-room__start:disabled{opacity:.4;cursor:not-allowed}.waiting-room__cancel{padding:10px 32px;font-size:16px;font-weight:600;font-family:inherit;border:2px solid var(--color-text-muted);border-radius:8px;background:transparent;color:var(--color-text)}.waiting-room__copy{padding:6px 20px;font-size:14px;font-weight:600;font-family:inherit;border:2px solid var(--color-text-muted);border-radius:8px;background:transparent;color:var(--color-text-muted)}.waiting-room__copy:hover{background:#ffffff1a;border-color:var(--color-text);color:var(--color-text)}.waiting-room__cancel:hover{background:#ffffff1a;border-color:var(--color-text)}.seats__chip{position:absolute;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;border-radius:8px;background:#ffffff14;z-index:1;--stripe: 0 0 0 0 transparent;--glow: 0 0 0 0 transparent;box-shadow:var(--stripe),var(--glow)}.seats__chip--top{top:12px;left:50%;transform:translate(-50%)}.seats__chip--top-left{top:15%;left:12px}.seats__chip--top-right{top:15%;right:12px}.seats__chip--left{top:50%;left:12px}.seats__chip--right{top:50%;right:12px}.seats__chip--out{opacity:.35}.seats__chip--you .seats__name{font-weight:600}.seats__chip--attacker{background:#dc78322e;--stripe: inset 3px 0 0 #dc7832}.seats__chip--defender{background:#468cdc2e;--stripe: inset 3px 0 0 #468cdc}.seats__chip--next{--stripe: inset 3px 0 0 rgba(255, 255, 255, .25)}.seats__chip--active{--glow: 0 0 12px 4px rgba(255, 215, 0, .6)}.seats__chip--pickup{--glow: 0 0 12px 4px rgba(220, 60, 60, .6)}.seats__bottom-group{position:absolute;bottom:12px;left:12px;right:12px;display:flex;align-items:center;justify-content:center;z-index:1}.seats__bottom-group .seats__chip{position:static}.seats__action--left{position:absolute;left:0}.seats__action--right{position:absolute;right:0}.seats__bout-label{position:absolute;left:0;bottom:100%;margin-bottom:4px;font-size:14px;font-weight:600;opacity:.85}.seats__action{padding:6px 16px;font-size:14px;font-weight:600;border:2px solid var(--color-text-muted);border-radius:8px;background:#ffffff1a;color:var(--color-text)}.seats__action:hover{background:#fff3;border-color:var(--color-text)}.seats__name{font-size:13px;color:var(--color-text-muted);white-space:nowrap}.seats__count{font-size:20px;font-weight:700}.game-menu{position:relative;flex-shrink:0}.game-menu__trigger{position:relative;font-size:20px;line-height:1;padding:4px 8px;border:none;background:#ffffff14;color:var(--color-text-muted);border-radius:6px;cursor:pointer}.game-menu__status{position:absolute;top:2px;right:2px;width:7px;height:7px;border-radius:50%;background:#c41e3a;animation:relay-pulse 2s ease-in-out infinite}.game-menu__status--ok{background:#4caf50;animation:none}@keyframes relay-pulse{0%,to{opacity:1}50%{opacity:.3}}.game-menu__backdrop{position:fixed;inset:0;z-index:10}.game-menu__panel{position:absolute;top:calc(100% + 4px);right:0;z-index:11;min-width:140px;background:#2a2a2e;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:4px;box-shadow:0 4px 16px #0006}.game-menu__item{display:block;width:100%;padding:10px 12px;border:none;background:none;color:var(--color-text);font-size:14px;text-align:left;border-radius:6px;cursor:pointer}.game-menu__item:active{background:#ffffff1a}.card-view{position:relative;width:var(--card-width);height:var(--card-height);background:var(--color-card-bg);border:2px solid var(--color-card-border);border-radius:var(--card-radius);font-weight:700;cursor:default;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0}.card-view--red{color:var(--color-red)}.card-view--black{color:var(--color-black)}.card-view--clickable{cursor:pointer;transition:transform .1s,box-shadow .1s}@media(hover:hover){.card-view--clickable:hover{transform:translateY(-4px);box-shadow:0 4px 8px #0000004d}}.card-view--selected{border-color:gold;box-shadow:0 0 8px gold;transform:translateY(-6px)}.card-view__corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1}.card-view__corner--tl{top:3px;left:4px}.card-view__corner--br{bottom:3px;right:4px;transform:rotate(180deg)}.card-view__rank,.card-view__suit{font-size:14px}.trump-indicator{display:flex;flex-direction:column;align-items:center;gap:4px}.trump-indicator--red{color:var(--color-red)}.trump-indicator--black{color:var(--color-black)}.trump-indicator__suit{font-size:36px}.trump-indicator__count{font-size:14px;color:var(--color-text-muted)}.table{display:flex;flex-wrap:wrap;justify-content:center;gap:24px 24px;padding:16px;min-height:120px;max-width:200px}.table__pair{position:relative}.table__defense{position:absolute;top:16px;left:12px}.hand{display:flex;justify-content:center;flex-wrap:nowrap;padding:8px 8px 20px;min-height:calc(var(--card-height) + 28px)}.hand>*+*{margin-left:var(--hand-offset, 6px)}.game-screen{display:flex;flex-direction:column;height:100%;position:relative}.game-screen__menu{position:absolute;top:8px;right:8px;z-index:5}.game-screen__middle{flex:1;display:flex;align-items:center;justify-content:center;padding:8px;position:relative}.game-screen__deck{position:absolute;left:12px;top:12px}.result-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:32px}.result-screen__message{font-size:36px;font-weight:700}.result-screen__opponents{display:flex;flex-direction:column;gap:8px;width:260px}.result-screen__opponent{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border:1px solid var(--color-text-muted);border-radius:6px}.result-screen__opponent-name{font-size:14px}.result-screen__add-btn{padding:4px 12px;font-size:13px;font-weight:600;font-family:inherit;border:2px solid #ffd700;border-radius:6px;background:transparent;color:gold}.result-screen__add-btn:hover{background:#ffd70026}.result-screen__button{padding:12px 40px;font-size:20px;font-weight:600;border:none;border-radius:8px;background:gold;color:var(--color-black)}.result-screen__button:hover{background:#ffe44d}.PWABadge-container{padding:0;margin:0;width:0;height:0}.PWABadge-toast{position:fixed;right:0;bottom:0;margin:16px;padding:12px;border:1px solid #8885;border-radius:4px;z-index:1;text-align:left;box-shadow:3px 4px 5px #8885;background-color:#fff}.PWABadge-toast-message{margin-bottom:8px}.PWABadge-toast-button{border:1px solid #8885;outline:none;margin-right:5px;border-radius:2px;padding:3px 10px}.app{height:100%}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-felt: #1a5c2a;--color-felt-light: #237a38;--color-card-bg: #fff;--color-card-border: #ccc;--color-red: #c41e3a;--color-black: #1a1a1a;--color-text: #f0f0f0;--color-text-muted: #aaa;--card-width: 60px;--card-height: 84px;--card-radius: 6px}html,body,#root{height:100%;overflow:hidden}body{font-family:system-ui,-apple-system,sans-serif;background-color:var(--color-felt);color:var(--color-text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:manipulation}button{font:inherit;cursor:pointer}
