:root{color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--control-h: 36px}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:#0b6e4f;color:#f3f3f3;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.app-shell{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.5rem;gap:.75rem}.home-group{display:flex;flex-direction:column;gap:.6rem;width:min(320px,90vw);margin:0;padding:1rem 1.1rem 1.1rem;border:1px solid rgba(255,255,255,.35);border-radius:12px;background:#00000026}.home-group legend{padding:0 .5rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.85}.home-group .primary-btn{width:100%}.solitaire-home-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;background:#e8dcc0;color:#3a2f1c;font-weight:700}.solitaire-home-btn:hover:not(:disabled){background:#f0e6cf}.solitaire-home-btn svg{display:block;flex:0 0 auto}button{font:inherit;font-weight:600;height:var(--control-h);padding:.5rem .9rem;border:0;border-radius:8px;background:#fff;color:#0a2b1f;cursor:pointer}.role-list button,button.log-entry,.log-group-parent,.log-ticker-expand,.panel-btn,.panel-rail-btn,.hand-sort-btn,.header-undo-btn,.header-lock-btn,.host-overflow-btn,.icon-btn,.callout-trigger,.callout-option,.callout-remove,.invite-remove,.invite-reorder,.invite-general-link,.chat-banner-expand,.settings-tab,.deck-row-x,.deck-row-add,.cbc-arrow,.dz-swatch,.appearance-toggle,.appearance-link,.modal-close-x,.modal-cancel-link,.link-btn,.linklike{height:auto}button:disabled{opacity:.45;cursor:default}.discord-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:var(--control-h);padding:0 .85rem;border-radius:8px;background:#5865f2;color:#fff;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer}.discord-btn:hover{background:#6b76f5}.discord-btn svg{display:block}.discord-btn--compact{width:var(--control-h);padding:0}.discord-btn--floating{position:fixed;top:.75rem;right:.75rem;z-index:1000;box-shadow:0 4px 14px #0006}.discord-banner{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;max-width:560px;padding:.7rem 1.1rem;border-radius:12px;background:#5865f2;color:#fff;font-weight:600;text-decoration:none;line-height:1.3;margin-bottom:.85rem;box-shadow:0 6px 18px #5865f266}.discord-banner:hover{background:#6b76f5}.discord-banner-glyph{flex-shrink:0}@media (max-width: 768px){.discord-btn--header,.discord-btn--floating{display:none}}input{font:inherit;padding:.5rem .7rem;border-radius:8px;border:1px solid rgba(255,255,255,.4);background:#00000026;color:inherit}.join-row{display:flex;gap:.5rem}.role-list{display:flex;flex-direction:column;gap:.5rem;width:min(420px,90vw)}.role-list button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:.15rem}.role-list span{font-size:.85rem;opacity:.7}.host-setup{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:min(420px,90vw)}.host-setup-q,.join-intro{margin:0;font-weight:600}.join-ways{margin:0 0 .25rem;padding-left:1.4rem;text-align:left;align-self:center;display:flex;flex-direction:column;gap:.3rem}.error{color:#ffd7d7}.muted{opacity:.6}.scene{display:flex;flex-direction:column;height:100%;overflow:hidden}.scene-header,.seats{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;padding:.6rem 1rem;background:#0003;flex-shrink:0}.scene-header{justify-content:space-between;position:relative}.header-left,.header-right{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.spectator-count{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;opacity:.8;white-space:nowrap}.spectator-count svg{display:block}.header-undo-btn{max-width:min(48ch,40vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.header-undo-btn:disabled{opacity:.45;cursor:default}.header-lock-btn,.header-lock-icon{display:flex;align-items:center;justify-content:center;height:auto;padding:.15rem;background:transparent;border-radius:6px;color:#ffffffd9;flex-shrink:0}.header-lock-btn svg,.header-lock-icon svg{width:16px;height:16px;flex-shrink:0;display:block}.header-lock-btn:hover{color:#fff}.header-lock-btn--locked,.header-lock-icon--locked{color:#f5b301}.header-lock-btn--locked:hover{color:#ffc933}.tag{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;background:#ffffff2e;padding:.1rem .4rem;border-radius:6px}.seat.me{font-weight:700}.table-size{display:flex;align-items:center;gap:.35rem;font-size:.75rem;white-space:nowrap}.table-size input[type=range]{width:110px;cursor:pointer}.stack{position:absolute;filter:drop-shadow(0 calc(var(--stack-elev, 0) * .06px) calc(var(--stack-elev, 0) * .06px + .5px) rgba(0,0,0,.55)) drop-shadow(0 calc(var(--stack-elev, 0) * .14px) calc(var(--stack-elev, 0) * .26px + .5px) rgba(0,0,0,.38))}.stack-shadow{position:absolute;top:0;left:0;pointer-events:none;opacity:.92}.stack.free-drag{filter:drop-shadow(0 6px 10px rgba(0,0,0,.45))}.stack.selected .stack-top,.stack.selected .card-empty{box-shadow:0 0 0 2px #78dcfff2;border-radius:6px}.target-glow .stack-top,.target-glow .card-empty{box-shadow:0 0 0 3px #78dcffd9,0 0 18px 6px #78dcff73;border-radius:8px}.hand-tray.target-glow{box-shadow:inset 0 6px #78dcffcc,0 0 0 1px #78dcff8c;background:#78dcff2e}.stack.dragged-over-target .stack-top,.hand-card.dragged-over-target{box-shadow:0 0 0 3px #78dcffe6,0 0 22px 8px #78dcff8c;border-radius:8px}.zone{position:absolute;border-radius:50%;border:2px dashed transparent;background:transparent;pointer-events:none;transition:background .12s,border-color .12s,box-shadow .12s;z-index:-1}.zone.active{border-color:#ffffff38}.zone.hot{border-color:#78dcfff2;background:#78dcff2e;box-shadow:0 0 24px #78dcff66;border-style:solid}.zone.hand-zone{border-width:2px}@keyframes action-glow{0%{box-shadow:0 0 #ffe66ed9,0 0 22px 6px #ffe66e8c}60%{box-shadow:0 0 0 6px #ffe66e59,0 0 28px 10px #ffe66e4d}to{box-shadow:0 0 #ffe66e00,0 0 #ffe66e00}}.stack.glow .stack-top,.stack.glow .card-empty,.seat-marker.glow{animation:action-glow 1s ease-out;border-radius:8px}.actor-chip{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);background:#ffe66ef2;color:#1a1a1a;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:700;white-space:nowrap;pointer-events:none;animation:chip-fade 1.1s ease-out forwards;z-index:50}@keyframes chip-fade{0%{opacity:0;transform:translate(-50%,4px) rotate(var(--counter-rot, 0deg))}20%{opacity:1;transform:translate(-50%) rotate(var(--counter-rot, 0deg))}80%{opacity:1;transform:translate(-50%) rotate(var(--counter-rot, 0deg))}to{opacity:0;transform:translate(-50%,-4px) rotate(var(--counter-rot, 0deg))}}.actor-chip-wrap{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;z-index:50}.actor-chip-content{position:absolute;left:0;bottom:45px;transform:translate(-50%);background:#ffe66ef2;color:#1a1a1a;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:700;white-space:nowrap;animation:stack-chip-fade 1.1s ease-out forwards}@keyframes stack-chip-fade{0%{opacity:0;transform:translate(-50%,4px)}20%{opacity:1;transform:translate(-50%)}80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-4px)}}.table-disc{position:absolute;border-radius:50%;background:var(--table-surface-bg, radial-gradient(circle at center, #0c7a57 0%, #095f44 70%, #074d36 100%));background-size:cover;background-position:center;box-shadow:inset 0 0 0 4px #00000026,inset 0 -16px 36px #00000047,0 22px 48px #0000008c,0 0 64px 12px #0006;pointer-events:none}.seat-marker.is-turn{box-shadow:0 0 0 2px #28e0e0,0 0 14px 2px #28e0e08c}.turn-banner{position:fixed;top:10px;left:50%;transform:translate(-50%);z-index:1100;display:flex;align-items:center;gap:10px;padding:6px 14px;border-radius:999px;background:#0000009e;color:#f3f3f3;font-size:.9rem;border:1px solid rgba(255,255,255,.15);pointer-events:auto;max-width:92vw;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.turn-banner:active{cursor:grabbing}.join-bubble{top:56px;background:#b07810eb;border-color:#ffdc788c;font:inherit;font-size:.9rem;font-weight:700;cursor:pointer}.join-bubble:active{cursor:grabbing}.turn-banner-who{font-weight:700}.turn-banner-who.muted{font-weight:500;opacity:.85}.turn-banner-end{font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;padding:4px 12px;border-radius:999px;border:0;background:#28e0e0;color:#04302f}.callout-picker{position:relative}.callout-trigger{font:inherit;font-size:.75rem;font-weight:700;cursor:pointer;padding:3px 10px;border-radius:999px;border:0;background:#ffffff2e;color:#f3f3f3;transition:background .15s}.callout-trigger:hover,.callout-trigger.is-open{background:#ffffff4d}.callout-menu{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);background:#141414eb;border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:4px;display:flex;flex-direction:column;gap:3px;min-width:100px;z-index:10}.callout-option{font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;padding:6px 14px;border-radius:7px;border:0;background:transparent;color:#f3f3f3;text-align:center;white-space:nowrap}.callout-option:hover{background:#ffffff26}.callout-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#0000008c;cursor:pointer;animation:callout-fade-in .15s ease}@keyframes callout-fade-in{0%{opacity:0}to{opacity:1}}.callout-overlay-content{text-align:center;padding:2rem 3rem;background:#000000b3;border-radius:20px;border:1px solid rgba(255,255,255,.2)}.callout-overlay-name{font-size:1.1rem;font-weight:600;opacity:.8;margin-bottom:.35rem}.callout-overlay-text{font-size:clamp(3rem,12vw,6rem);font-weight:900;color:#fff;letter-spacing:.02em;line-height:1}.callout-list{display:flex;flex-direction:column;gap:6px;margin-top:4px}.callout-row{display:flex;align-items:center;gap:8px}.callout-input{flex:1;min-width:0;max-width:160px;font:inherit;font-size:.9rem;padding:5px 10px;border-radius:7px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:inherit}.callout-remove{font:inherit;font-size:.8rem;cursor:pointer;padding:4px 10px;border-radius:7px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#f3f3f3;opacity:.7}.callout-remove:hover{opacity:1;background:#ff505033}.seat-marker{position:absolute;padding:6px 14px;border-radius:16px;background:#0000008c;color:#f3f3f3;font-size:.85rem;display:flex;align-items:center;gap:8px;white-space:nowrap;pointer-events:none;border:1px solid rgba(255,255,255,.15);z-index:1001}.seat-marker.me{background:#ffffffd9;color:#0b3d2c;font-weight:700;border-color:#fff}.seat-name{font-weight:600;letter-spacing:.01em}.seat-count{font-size:.75rem;padding:1px 6px;border-radius:999px;background:#ffffff2e}.seat-marker.me .seat-count{background:#0b3d2c26}.presence-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#9696968c;margin-right:2px}.presence-dot.online{background:#4ade80;box-shadow:0 0 6px #4ade8099}.presence-dot.stale{background:#facc15;box-shadow:0 0 6px #facc158c}.presence-dot.offline{background:#b4b4b473}.seat-marker.offline-pill,.seat.offline-pill{background:#b43232d9;color:#fff;border-color:#ff8c8c80}.seat-marker.offline-pill.me,.seat.offline-pill.me{background:#dc4646f2;color:#fff}.seat-offline-tag{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;opacity:.95;margin-left:4px;padding:1px 5px;border-radius:4px;background:#00000040}.seat-marker.practicing-pill,.seat.practicing-pill{background:#d63384e6;color:#fff;border-color:#ffaad299}.seat-marker.practicing-pill.me,.seat.practicing-pill.me{background:#e84696f2;color:#fff}.seat-practicing-tag{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-left:4px;padding:1px 5px;border-radius:4px;background:#00000038}.seat-marker.pending-pill,.seat.pending-pill{background:#386ebed1;color:#fff;border-color:#96beff80}.seat-pending-tag{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-left:4px;padding:1px 5px;border-radius:4px;background:#00000038}.presence-dot.invited{background:#6ea8fe;box-shadow:0 0 6px #6ea8fe99}.seat-marker.retired-pill,.seat.retired-pill{background:#464e54d9;color:#d9dee2;border-color:#a0aab066}.seat-retired-tag{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-left:4px;padding:1px 5px;border-radius:4px;background:#0000004d}.seat-marker.empty-pill,.seat.empty-pill{background:#141e1973;color:#9fb1a6;border:1px dashed rgba(159,177,166,.55);font-style:italic}.seat-empty-tag{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-left:4px;padding:1px 5px;border-radius:4px;background:#9fb1a62e;color:#b9c7bf}.edge-chip.pending-pill{background:#386ebed1;color:#fff;border-color:#96beff80}.invite-pending-tag{font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:#6ea8fe;margin-right:2px}.invites-error{margin:4px 0 0;font-size:.85rem}.hand-fan{position:absolute;pointer-events:none}.card.fan-card{position:absolute;border-radius:4px}.count{position:absolute;right:-6px;top:-6px;background:#111;color:#fff;font-size:.7rem;border-radius:999px;padding:.05rem .35rem}.count-wrap{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;z-index:49}.count-content{position:absolute;left:26px;top:-41px;transform:translate(-50%,-50%);background:#111;color:#fff;font-size:.7rem;font-weight:700;border-radius:999px;padding:.05rem .4rem;white-space:nowrap}.hand-place-wrap{margin-left:auto;position:relative;display:inline-flex;align-items:center}button.hand-place-btn{background:#3b6fe0!important;color:#fff;font-size:1.45rem;line-height:1.1;padding:3px 9px;min-width:1.8rem;text-align:center}button.hand-place-btn:hover,button.hand-place-btn:focus,button.hand-place-btn:active{background:#4f7ee8!important}.hand-place-bubble{position:absolute;bottom:calc(100% + 6px);right:0;white-space:nowrap;background:#000000d9;color:#fff;padding:4px 8px;border-radius:6px;font-size:.72rem;font-weight:600;pointer-events:none;box-shadow:0 4px 14px #0006;z-index:5}.hand-place-bubble--left{bottom:auto;right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.ask-place-default{display:flex;align-items:center;gap:.4rem;font-size:.85rem;justify-content:center}.ask-place-default input{width:auto}.hand-tray{padding:.6rem 1rem;background:#00000040;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden}.hand{display:flex;gap:.4rem;flex-wrap:wrap;position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;align-content:flex-start;padding-top:14px}.hand.overlap{gap:0}.hand-drop-indicator{position:absolute;top:4px;bottom:4px;width:4px;background:#78dcfff2;border-radius:2px;pointer-events:none;transform:translate(-50%);box-shadow:0 0 8px #78dcff99}.hand-card.dragging{opacity:.85}.hand-card.selected{outline:2px solid rgba(120,220,255,.95);outline-offset:2px;border-radius:6px;transform:translateY(-4px)}.multi-card-back{position:absolute;top:0;right:0;bottom:0;left:0;width:52px;height:74px;background:repeating-linear-gradient(45deg,#1c3a6e,#1c3a6e 6px,#25478a 6px,#25478a 12px);border:1px solid #122a52;border-radius:6px;pointer-events:none}.multi-card-count{position:absolute;right:-8px;top:-8px;background:#78dcfff2;color:#0b3d2c;font-weight:800;font-size:.75rem;border-radius:999px;padding:2px 7px;z-index:10;pointer-events:none;box-shadow:0 0 6px #78dcff99}.hand-card.newly-added{animation:action-glow 1s ease-out;border-radius:8px}.hand-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-bottom:.45rem;font-size:.78rem}.hand-sort-btn{font:inherit;font-size:.75rem;padding:.15rem .45rem;border-radius:5px;border:0;background:#ffffff29;color:#f3f3f3;cursor:pointer;line-height:1.3}.hand-sort-btn:hover:not(:disabled){background:#ffffff42}.hand-sort-btn:disabled{opacity:.45;cursor:default}.hand-card{display:inline-block;touch-action:none;cursor:grab}.hand-card:active{cursor:grabbing}.panel-layout{flex:1;display:flex;flex-direction:column;min-height:0}.panel-toolbar{display:flex;align-items:center;gap:.35rem;padding:.3rem .75rem;background:#00000026;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.panel-toolbar-label{font-size:.75rem;opacity:.6;margin-right:.25rem}.panel-row{flex:1;display:flex;min-height:0;position:relative}.panel-slot{position:relative;display:flex;flex-direction:column}.panel-viewport{flex:1;position:relative;overflow:hidden;cursor:default;background:var(--floor-bg, #0b6e4f);background-size:cover;background-position:center;min-height:0;touch-action:none}.panel-content{position:absolute;width:3000px;height:2000px}.rotation-layer{position:absolute;top:0;right:0;bottom:0;left:0}.panel-rail{position:absolute;right:6px;top:8px;bottom:8px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:6px;z-index:11;pointer-events:auto}.panel-rail-btn{opacity:.5;transition:opacity .15s}.panel-rail-btn:hover,.panel-rail-btn:focus,.panel-rail-btn:active,.panel-rail:hover .panel-rail-btn,.panel-rail:focus-within .panel-rail-btn{opacity:1}.panel-zoom-slider-vertical{writing-mode:vertical-lr;-moz-appearance:slider-vertical;appearance:slider-vertical;-webkit-appearance:slider-vertical;direction:rtl;width:22px;flex:1 1 auto;height:auto;min-height:0;opacity:.5;cursor:pointer;accent-color:rgba(255,255,255,.85);transition:opacity .15s}.panel-zoom-slider-vertical:hover,.panel-zoom-slider-vertical:active,.panel-zoom-slider-vertical:focus,.panel-rail:hover .panel-zoom-slider-vertical,.panel-rail:focus-within .panel-zoom-slider-vertical{opacity:1}.panel-btn{font:inherit;padding:.2rem .5rem;font-size:.8rem;border:0;border-radius:6px;background:#ffffff26;color:#f3f3f3;cursor:pointer;line-height:1}.panel-btn:hover{background:#ffffff47}.panel-btn.active{background:#ffffff59;font-weight:700}.panel-divider-vertical{width:5px;background:#ffffff1f;cursor:col-resize;flex-shrink:0;transition:background .15s;z-index:30;position:relative;touch-action:none}.panel-divider-vertical:hover,.panel-divider-vertical:active,.panel-divider-horizontal:hover,.panel-divider-horizontal:active{background:#ffffff59}.panel-divider-vertical.disabled,.panel-divider-horizontal.disabled{cursor:default;background:#ffffff0f}.panel-divider-vertical.disabled:hover,.panel-divider-horizontal.disabled:hover{background:#ffffff0f}.panel-divider-vertical.disabled:before,.panel-divider-vertical.disabled:after,.panel-divider-horizontal.disabled:before,.panel-divider-horizontal.disabled:after{display:none}.panel-divider-vertical:before,.panel-divider-vertical:after{content:"";position:absolute;left:50%;width:3px;height:28px;transform:translate(-50%);background-image:radial-gradient(circle,rgba(255,255,255,.55) 1px,transparent 1.2px);background-size:3px 6px;background-repeat:repeat-y;pointer-events:none}.panel-divider-vertical:before{top:18px}.panel-divider-vertical:after{bottom:18px}.panel-divider-horizontal:before,.panel-divider-horizontal:after{content:"";position:absolute;top:50%;height:3px;width:28px;transform:translateY(-50%);background-image:radial-gradient(circle,rgba(255,255,255,.55) 1px,transparent 1.2px);background-size:6px 3px;background-repeat:repeat-x;pointer-events:none}.panel-divider-horizontal:before{left:18px}.panel-divider-horizontal:after{right:18px}.card{width:52px;height:74px;border-radius:6px;position:relative;-webkit-user-select:none;user-select:none}.card-face{background:#fdfdfd;color:#111;border:1px solid #c8c8c8}.card-face.red{color:#c0202a}.card-art{overflow:hidden;box-sizing:border-box}.card-art--edge{padding:0}.card-art--small{padding:4px}.card-art--big{padding:8px}.card-art-img{display:block;width:100%;height:100%;object-fit:cover;box-sizing:border-box;pointer-events:none}.card-art--edge .card-art-img{border-radius:inherit}.card-art--b-thin .card-art-img{border:1px solid #000;border-radius:3px}.card-art--b-thick .card-art-img{border:3px solid #000;border-radius:3px}.card-back{background:var(--card-back-bg, repeating-linear-gradient(45deg, #1c3a6e, #1c3a6e 6px, #25478a 6px, #25478a 12px));border:var(--card-back-border-width, 1px) solid var(--card-back-border-color, #122a52)}.card-empty{border:var(--zone-border-width, 1px) dashed var(--zone-border-color, rgba(218, 178, 60, .7));background:var(--zone-fill, transparent)}.card .corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1;font-weight:700}.card .corner-tl{top:1px;left:2px}.card .corner-br{bottom:1px;right:2px;transform:rotate(180deg)}.card .corner-rank{font-size:.6rem}.card .corner-suit{font-size:.54rem;margin-top:0}.card .pip{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:1.6rem}.card .pip-grid{position:absolute;top:0;right:0;bottom:0;left:0}.card .pip-sm{position:absolute;font-size:.72rem;line-height:1}.stack-top{position:relative;display:inline-block}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:900}.target-bubble{position:absolute;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;border:2px dashed rgba(255,255,255,.4);background:#00000059;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .1s,border-color .1s}.target-bubble.active{background:#ffffff40;border:2px solid rgba(255,255,255,.85)}.target-bubble.bubble-all{background:#0b6e4f8c;border-style:dashed}.target-bubble.bubble-all.active{background:#0b6e4fcc;border-style:solid}.bubble-label{font-size:.65rem;font-weight:700;letter-spacing:.02em;line-height:1.1}.bubble-sublabel{font-size:.55rem;opacity:.75;margin-top:1px}.stack-label{position:absolute;top:-22px;left:50%;transform:translate(-50%);background:#0009;color:#f3f3f3;font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:8px;white-space:nowrap;-webkit-user-select:none;user-select:none}.ghost-spot .card-empty{border-color:var(--zone-border-color, rgba(232, 196, 80, .9))}.ghost-card{position:absolute;pointer-events:none;z-index:50}.snap-preview{position:absolute;width:52px;height:74px;border:1px dashed rgba(255,255,255,.5);border-radius:6px;background:#ffffff0a;pointer-events:none;z-index:100}.edge-chip{display:flex;align-items:center;gap:5px;padding:4px 10px;background:#000000a6;color:#f3f3f3;border:1px solid rgba(255,255,255,.18);border-radius:999px;font-size:.72rem;font-weight:600;white-space:nowrap;z-index:50;pointer-events:auto;transition:background .12s,border-color .12s;-webkit-user-select:none;user-select:none}.edge-chip.me{background:#ffffffd9;color:#0b3d2c;border-color:#ffffffe6}.edge-chip.offline-pill{background:#b43232d9;color:#fff;border-color:#ff8c8c80}.edge-chip.offline-pill.me{background:#dc4646f2}.edge-chip.practicing-pill{background:#d63384e6;color:#fff;border-color:#ffaad299}.edge-chip.practicing-pill.me{background:#e84696f2}.edge-chip.hot{background:#78dcfff2;color:#0b3d2c;border-color:#78dcff;box-shadow:0 0 12px #78dcff99}.edge-chip-name{font-weight:700}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200}.popup-menu{position:absolute;background:#143a2c;border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:2px;min-width:200px;box-shadow:0 6px 16px #0006}.menu-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.7;padding:6px 8px 4px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:4px}.popup-menu button{background:transparent;color:#f3f3f3;border-radius:6px;padding:8px 10px;text-align:left;font:inherit;font-size:.85rem}.popup-menu button:hover{background:#ffffff1f}.popup-menu .menu-empty{padding:8px 10px;font-size:.85rem;font-style:italic}.popup-menu button.danger{color:#ffb3a3}@media (max-width: 768px){.popup-menu{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;border-radius:10px 10px 0 0;max-height:70vh;overflow-y:auto;padding:10px;gap:4px}.popup-menu button{padding:12px 14px;font-size:.95rem}}.popup-menu .menu-cancel{margin-top:4px;border-top:1px solid rgba(255,255,255,.1);padding-top:8px;border-radius:0 0 6px 6px}.preset-row{display:flex;gap:6px}.preset-row button{flex:1;background:#ffffff1f;color:#f3f3f3}.modal-row{display:flex;gap:12px;align-items:center;font-size:.85rem;flex-wrap:wrap}.modal-row label{display:flex;align-items:center;gap:4px;cursor:pointer}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;background:#00000080}.modal{background-color:#1e3a8a;background-image:linear-gradient(135deg,#1e3a8a00 0,#1e3a8a00 40%,#1e3a8a 44%,#1e3a8a),repeating-linear-gradient(-45deg,rgba(255,255,255,.05) 0,rgba(255,255,255,.05) 12px,transparent 12px,transparent 30px);color:#fff;padding:1.2rem;border-radius:14px;box-shadow:0 18px 50px #0000008c,0 0 0 1px #ffffff0f;width:min(360px,90vw);position:relative;display:flex;flex-direction:column;gap:.75rem}.modal select,.modal input:not([type=checkbox]):not([type=radio]){height:var(--control-h)}.modal .role-list button{padding:.6rem .8rem}.modal button:not(.modal-close-x):not(.appearance-toggle):not(.settings-tab):not(.deck-row-x):not(.callout-remove):not(.cbc-arrow):not(.dz-swatch):not(.deck-row-add):not(.link-btn):not(.modal-cancel-link):not(.primary-btn){background:#3b6fe0;color:#fff}.modal button:not(.modal-close-x):not(.appearance-toggle):not(.settings-tab):not(.deck-row-x):not(.callout-remove):not(.cbc-arrow):not(.dz-swatch):not(.deck-row-add):not(.link-btn):not(.modal-cancel-link):not(.primary-btn):hover{background:#4f7ee8}.modal a,.modal .link-btn,.modal .appearance-link,.modal .modal-cancel-link{color:#fff;text-decoration:underline}.modal .link-btn:hover,.modal .appearance-link:hover{color:#fff;opacity:.85}.modal h3{margin:0}.modal.modal-narrow{width:min(280px,90vw);align-items:center}.modal.modal-scroll{max-height:88vh;overflow-y:auto;overscroll-behavior:contain}.modal.settings-dialog{width:min(360px,92vw)}@media (min-width: 600px){.modal{width:min(440px,90vw)}.modal.settings-dialog,.modal.points-panel{width:min(560px,92vw)}.modal.cardbacks-admin{width:min(680px,92vw)}}.host-setting-row.host-setting-stack{flex-direction:column;align-items:stretch;cursor:default}.appearance-toggle{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;text-align:left}.appearance-toggle .host-setting-label{flex:1 1 auto}.appearance-chevron{flex:0 0 auto;transition:transform .15s ease;opacity:.7}.appearance-chevron.is-open{transform:rotate(180deg)}.appearance-body{margin-top:.6rem;display:flex;flex-wrap:wrap;gap:.75rem 1rem}.appearance-col{flex:1 1 200px;min-width:0}.appearance-head{margin:0 0 .2rem;font-size:.85rem;opacity:.8}.appearance-link{color:#cfe7da;text-decoration:underline;cursor:pointer;font-weight:600}.appearance-link:hover{color:#fff}.host-setting-select{font:inherit;padding:6px 8px;border-radius:6px;background:#1a1a1a;color:#e6e6e6;border:1px solid rgba(255,255,255,.25);width:100%}.solitaire-row{display:flex;align-items:center;gap:8px;margin-top:6px;cursor:pointer}.solitaire-row input{width:auto}.minmax-row{display:flex;gap:12px;margin-top:8px}.minmax-field{display:flex;flex-direction:column;gap:3px;font-size:.8rem}.minmax-field .host-setting-select{width:5.5rem}.invites-max{margin-top:-4px}.dz-controls{display:flex;flex-direction:column;gap:10px;margin-top:8px}.dz-swatches{display:flex;gap:8px}.dz-swatch{box-sizing:border-box;width:34px;height:34px;min-width:34px;max-width:34px;min-height:34px;max-height:34px;padding:0;border-radius:6px;cursor:pointer;background:#143a2c}.dz-swatch.dz-black{border:2px dashed rgba(20,20,20,.9)}.dz-swatch.dz-white{border:2px dashed rgba(255,255,255,.9)}.dz-swatch.dz-gold{border:2px dashed rgba(218,178,60,.95)}.dz-swatch.dz-gray{border:2px dashed rgba(176,184,190,.95)}.dz-swatch.sel{outline:2px solid #7dd3fc;outline-offset:2px}.dz-row2{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.dz-fill{display:flex;align-items:center;gap:6px;font-size:.85rem}.dz-fill input{width:auto}.dz-preview{display:inline-flex;align-items:center;margin-left:auto}.deck-add-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 4px}.deck-type-select{flex:1 1 8rem;min-width:0;max-width:100%}.deck-qty-label{display:flex;align-items:center;gap:5px;font-size:.85rem;flex:0 0 auto}.deck-add-row .primary-btn{align-self:stretch}.deck-on-table{margin:8px 0 0;padding:8px 10px 10px;border:1px solid rgba(255,255,255,.18);border-radius:8px}.deck-on-table legend{padding:0 6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.75}.deck-list{display:flex;flex-direction:column;gap:4px}.deck-row{display:flex;align-items:center;gap:8px;padding:5px 8px;background:#ffffff12;border-radius:6px}.deck-row-name{flex:1;font-size:.88rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-row-x{flex:0 0 auto;background:transparent;border:none;color:#f0a59e;font:inherit;font-size:1.05rem;font-weight:700;line-height:1;padding:3px 8px;border-radius:4px;cursor:pointer}.deck-row-x:hover:not(:disabled){background:#ffffff1a}.deck-row-x:disabled{opacity:.35;cursor:default}.confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.link-btn{background:none;border:none;padding:0;margin:0;color:#7dd3c8;text-decoration:underline;cursor:pointer;font:inherit}.link-btn:hover{color:#a5e8e3}.settings-tab:disabled{opacity:.4;cursor:not-allowed}.modal-drag-handle{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.modal-drag-handle:active{cursor:grabbing}.cbc{display:flex;flex-direction:column;gap:.5rem}.cbc-row{display:flex;align-items:center;gap:2px}.cbc-arrow{flex:0 0 auto;background:none;border:0;padding:4px 8px;color:#cfeede;font-size:1.7rem;line-height:1;cursor:pointer;opacity:.8}.cbc-arrow:disabled{opacity:.25;cursor:default}.cbc-track{flex:1 1 auto;display:flex;gap:8px;overflow-x:auto;position:relative;scroll-snap-type:x mandatory;padding:8px calc(50% - 48px);scrollbar-width:none}.cbc-track::-webkit-scrollbar{display:none}.cbc-item{flex:0 0 auto;width:96px;display:flex;align-items:center;justify-content:center;scroll-snap-align:center;cursor:pointer}.cbc-preview{display:inline-flex;opacity:.45;filter:saturate(.8);transform:scale(.8);transition:transform .18s ease,opacity .18s ease}.cbc-item.is-center .cbc-preview{opacity:1;filter:none;transform:scale(1.3)}.cbc.no-anim .cbc-preview{transition:none}.cbc-card{display:inline-block}.cbc-felt{display:inline-block;width:58px;height:58px;border-radius:50%;background:var(--table-surface-bg);background-size:cover;background-position:center;box-shadow:inset 0 0 0 2px #0000002e}.cbc-floor{display:inline-block;width:64px;height:48px;border-radius:8px;background:var(--floor-bg, repeating-linear-gradient(45deg, #2a2a2a, #2a2a2a 5px, #222 5px, #222 10px));background-size:cover;background-position:center;box-shadow:inset 0 0 0 2px #00000040}.cbc-info{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:58px}.cbc-label{font-weight:700}.cbc-zoom-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;background:#000000d1}.cbc-zoom-art{display:flex;align-items:center;justify-content:center;width:min(82vw,340px);height:min(56vh,340px)}.cbc-zoom-art>*{transform:scale(4);transform-origin:center}.cbc-zoom-label{color:#eaf6ef;font-weight:700;font-size:1.15rem}.cbc-zoom-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;border-radius:50%;border:0;cursor:pointer;background:#fff;color:#111;font-size:1.4rem;line-height:1}.scene-preview-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:#000000d1}.scene-preview{position:relative;display:flex;flex-direction:column;align-items:center;gap:.6rem;background:#143a2c;padding:1rem;border-radius:14px;box-shadow:0 12px 40px #00000080}.scene-vp{position:relative;overflow:hidden;width:min(88vw,70vh,460px);height:min(88vw,70vh,460px);border-radius:12px;background:#0a0a0a;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.scene-vp:active{cursor:grabbing}.scene-stage{position:absolute;top:0;left:0;transform-origin:0 0}.scene-floor{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--floor-bg, #0b6e4f);background-size:cover;background-position:center}.scene-table{position:absolute;border-radius:50%;background:var(--table-surface-bg, radial-gradient(circle at center, #0c7a57 0%, #095f44 70%, #074d36 100%));background-size:cover;background-position:center;box-shadow:inset 0 0 0 4px #00000026,inset 0 -16px 36px #00000047,0 22px 48px #0000008c,0 0 64px 12px #0006}.scene-card{position:absolute;display:inline-block}.scene-zoom-controls{display:flex;gap:.5rem}.scene-zoom-controls button{min-width:44px;height:32px;padding:0 .7rem;border:0;border-radius:8px;cursor:pointer;background:#ffffff1f;color:#eaf6ef;font:inherit;font-weight:700}.scene-zoom-controls button:active{background:#fff3}.scene-preview-caption{color:#eaf6ef;font-weight:600;font-size:.95rem;text-align:center}.mode-chooser{width:min(440px,92vw)}.mode-chooser h2{margin:0;font-size:1.1rem}.mode-chooser .role-list{width:100%}.mode-chooser-note{font-weight:600;font-size:.95rem;line-height:1.25}.mode-chooser-note .link-btn{font:inherit}.mode-chooser-backdrop{z-index:1090}.facing-buttons{width:100%;justify-content:center;gap:12px}.facing-buttons button{flex:1;padding:.8rem .6rem;font-weight:700}.toast{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);left:50%;transform:translate(-50%);background:#141e19ed;color:#f3f3f3;font-size:.85rem;padding:8px 14px;border-radius:999px;box-shadow:0 4px 16px #0006;z-index:1500;pointer-events:none;animation:toast-fade 1.6s ease-out forwards}@keyframes toast-fade{0%{opacity:0;transform:translate(-50%,6px)}10%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-4px)}}.modal-cancel-link{background:transparent;color:#ffffffb3;padding:6px 8px;font-size:.8rem;text-decoration:underline}.modal-close-anchor{position:sticky;top:0;align-self:stretch;height:0;z-index:20;pointer-events:none}.modal-close-x{position:absolute;top:8px;right:8px;pointer-events:auto;box-sizing:border-box;flex:none;width:26px;height:26px;min-width:26px;min-height:26px;max-width:26px;max-height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:#fff;color:#000;cursor:pointer;box-shadow:0 1px 4px #00000059}.modal-close-x:hover{background:#ececec}.modal-close-x:active{background:#dcdcdc}.modal.cheat-sheet{width:min(560px,94vw);max-height:84vh;align-items:stretch;overflow:hidden}.cheat-sheet-body{display:flex;flex-direction:column;gap:1rem;overflow-y:auto;padding-right:4px}.cheat-section h4{margin:0 0 .4rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:#ffffff8c}.cheat-section dl{margin:0;display:flex;flex-direction:column;gap:.25rem}.cheat-row{display:grid;grid-template-columns:minmax(160px,1fr) 2fr;gap:.6rem;font-size:.85rem;line-height:1.3;padding:.2rem 0;border-bottom:1px dashed rgba(255,255,255,.06)}.cheat-row dt{font-weight:600;color:#ffffffeb}.cheat-row dd{margin:0;color:#ffffffb3}@media (max-width: 768px){.cheat-row{grid-template-columns:1fr;gap:.1rem}}.host-settings-list{display:flex;flex-direction:column;gap:.55rem;align-self:stretch}.settings-tabs{display:flex;gap:4px;align-self:stretch;margin-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.12)}.settings-tab{flex:1;background:none;border:0;border-bottom:2px solid transparent;color:#fff9;font:inherit;font-weight:600;padding:.45rem .3rem;cursor:pointer}.settings-tab:hover{color:#ffffffd9}.settings-tab.is-active{color:#fff;border-bottom-color:#bff0db}.settings-tab-body{min-height:9rem}.setting-actions{margin-left:auto;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.setting-actions button{background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:5px;color:#e6e6e6;font:inherit;font-size:.82rem;padding:2px 9px;cursor:pointer}.setting-actions button:hover:not(:disabled){background:#ffffff2e}.setting-actions button:disabled{opacity:.4;cursor:default}.host-setting-row{display:flex;align-items:flex-start;gap:.6rem;padding:.4rem .5rem;border-radius:6px;cursor:pointer;background:#284a9e}.host-setting-row:hover{background:#2f54ad}.host-setting-row input[type=checkbox]{margin-top:.2rem;cursor:pointer}.host-setting-row select{margin-top:.05rem;cursor:pointer;background:#1a1a1a;color:#e6e6e6;border:1px solid rgba(255,255,255,.18);border-radius:4px;font:inherit;font-size:.85rem;padding:2px 4px}.host-setting-label{display:flex;flex-direction:column;gap:.15rem;font-size:.88rem;line-height:1.3}.host-setting-label .muted{font-size:.75rem;color:#ffffff8c}.invites-modal{width:min(440px,94vw);align-items:stretch}.invites-help{font-size:.78rem;line-height:1.35}.invites-section-title{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;opacity:.6;margin-top:.4rem;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.1)}.invite-row{display:flex;align-items:center;gap:8px;padding:5px 0}.invite-name{flex:1;font-weight:600}.invite-row button{font-size:.8rem;padding:.3rem .6rem}.invite-remove{background:transparent!important;color:#ffc8c8b3!important;padding:0 .4rem!important;font-size:1rem!important}.invites-add{display:flex;gap:6px;margin-top:.5rem}.invites-add input{flex:1}.invite-add-locked{opacity:.5;cursor:pointer}.invite-reorder{background:#ffffff1f!important;color:#f3f3f3!important;padding:2px 8px!important;min-width:28px;line-height:1}.invite-reorder:disabled{opacity:.3;cursor:default}.tag-setup{background:#facc15d9;color:#4a3500;font-weight:800}.setup-banner{background:#facc15d9;color:#4a3500;font-weight:600;font-size:12px;line-height:1.4;padding:6px 12px 8px;text-align:center}.setup-banner-lead{margin-bottom:2px}.setup-banner-list{list-style:disc;display:inline-block;text-align:left;margin:0 auto;padding-left:18px;font-weight:500;line-height:1.25}.setup-banner-list li{margin:0}.linklike{display:inline!important;background:none!important;border:none!important;padding:0!important;margin:0!important;min-height:0!important;height:auto!important;color:#7dd3fc!important;font:inherit!important;font-weight:700!important;line-height:inherit!important;vertical-align:baseline!important;text-decoration:underline;cursor:pointer}.setup-banner .linklike{color:#1d4ed8!important}.host-recovery-btn{background:#ec4899;color:#fff;font-weight:800;letter-spacing:.05em}.host-recovery-btn:hover{background:#f472b6}.invite-general-link{font-size:11px;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-qr-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:.3rem .45rem!important;opacity:.7}.invite-qr-btn:hover,.invite-qr-btn.active{opacity:1}.share-btn{display:inline-flex;align-items:center;gap:.35rem}.share-btn svg{display:block}.scorepad-btn{display:inline-flex;align-items:center;justify-content:center}.scorepad-btn svg{display:block}.share-modal .invite-row,.share-help{margin-top:.25rem}.invite-qr-wrap{display:flex;justify-content:center;padding:1rem 0 .5rem}.invite-qr-wrap svg{border-radius:8px}.confirm-toggle{display:flex;align-items:center;gap:8px;margin:4px 0 8px;font-size:14px}.confirm-toggle input{width:auto}.primary-btn{background:#4f8cff!important;color:#fff!important;font-weight:700}.primary-btn:hover{background:#6a9dff!important}.modal label{display:flex;align-items:center;gap:.5rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.modal.confirm-dialog.stacked{width:min(340px,92vw)}.modal.confirm-dialog.stacked .modal-actions{flex-direction:column-reverse;width:100%;gap:.4rem}.modal.confirm-dialog.stacked .modal-actions button{width:100%;justify-content:center;white-space:nowrap}.panel-divider-horizontal{height:5px;cursor:row-resize;background:#333;flex-shrink:0;position:relative;transition:background .15s;touch-action:none}.hand-resize-handle{height:8px;cursor:row-resize;background:#333;border-top:1px solid #555;flex-shrink:0;touch-action:none;position:relative}.hand-resize-handle:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:40px;height:3px;background-image:radial-gradient(circle,rgba(255,255,255,.45) 1px,transparent 1.2px);background-size:6px 3px;background-repeat:repeat-x;pointer-events:none}.host-overflow-btn{min-width:44px;min-height:44px;font-size:1.2rem;padding:0}.host-menu-sheet{position:absolute;top:100%;right:0;z-index:500;background:#000000eb;border-radius:0 0 8px 8px;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;min-width:200px;max-width:90vw}.host-menu-sheet button{width:100%;justify-content:center}.lib-card-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:19px;margin:0 .45em;border-radius:3px;background:#fdfdfb;color:#1a1a1a;font-size:11px;line-height:1;border:1px solid rgba(0,0,0,.35);box-shadow:0 1px 2px #0000004d;flex:0 0 auto}.lib-card-icon--red{color:#c0392b}.host-menu-code{background:#c0392b!important;color:#fff!important;font-weight:700;letter-spacing:.04em}.host-menu-code:hover{background:#a93226!important}.host-code-note{margin:0 0 .25rem;line-height:1.4}.host-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:499}@media (min-width: 601px){.hand-tray{max-height:40vh}}.log-ticker{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.3rem 1rem;background:#00000026;border-bottom:1px solid rgba(255,255,255,.05);font-size:.78rem;color:#f3f3f3c7;flex-shrink:0;height:2.7rem;overflow:hidden}.log-ticker-lines{display:flex;flex-direction:column;justify-content:flex-end;gap:.15rem;flex:1;min-width:0;height:100%;overflow:hidden}.log-ticker-expand{flex-shrink:0;background:none;border:0;color:inherit;font-size:.72rem;font-weight:600;opacity:.7;cursor:pointer;padding:.15rem .25rem;white-space:nowrap}.log-ticker-expand:hover{opacity:1}.log-ticker .log-ticker-line{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}button.log-ticker.mobile{flex-direction:row;justify-content:space-between;align-items:center;width:100%;border:0;background:#0000002e;color:inherit;padding:.4rem .75rem;cursor:pointer;min-height:36px;text-align:left}button.log-ticker.mobile:hover{background:#00000047}.log-ticker-more{font-size:.7rem;opacity:.6;flex-shrink:0;margin-left:.5rem}.log-panel{background:#142e25;color:#f3f3f3;border-radius:10px;padding:0;width:min(520px,92vw);max-height:80vh;position:relative;display:flex;flex-direction:column;overflow:hidden}.log-panel--float{position:fixed;z-index:1500;box-shadow:0 10px 40px #0009;border:1px solid rgba(255,255,255,.12);background:#142e25e0}.log-panel--float-mobile{width:calc(100vw - 16px);max-height:50vh}.log-panel--float .log-panel-header{cursor:grab;touch-action:none;background:#00000059}.log-panel--float .log-panel-header:active{cursor:grabbing}.score-glow{animation:action-glow 1s ease-out}.score-empty{padding:1rem;display:flex;justify-content:center}.score-tabs{display:flex;gap:4px;padding:.4rem .6rem 0;flex-wrap:wrap;flex-shrink:0}.score-tab{min-width:1.9rem;background:#ffffff14;border:1px solid rgba(255,255,255,.14);color:#ffffffbf;border-radius:6px 6px 0 0;padding:.25rem .5rem;font-weight:700;cursor:pointer}.score-tab.is-active{background:#ffffff2e;color:#fff;border-bottom-color:transparent}.score-list{overflow-y:auto;padding:.5rem .6rem;display:flex;flex-direction:column;gap:.35rem}.score-row{border-bottom:1px solid rgba(255,255,255,.07);padding-bottom:.3rem}.score-row-main{display:flex;align-items:center;gap:.5rem}.score-name{background:none;border:0;color:#f3f3f3;font:inherit;font-weight:600;cursor:pointer;padding:.2rem 0;display:inline-flex;align-items:center;gap:.35rem;flex:1 1 auto;min-width:0;text-align:left}.score-name:hover{color:#fff}.score-caret{display:inline-block;font-size:.7rem;opacity:.7;transition:transform .12s ease}.score-caret.is-open{transform:rotate(90deg)}.score-value{font-variant-numeric:tabular-nums;font-weight:700;min-width:2.5rem;text-align:right}.score-add{display:inline-flex;align-items:center;gap:.3rem;flex:0 0 auto}.score-input{width:3.2rem;text-align:center;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.score-input::-webkit-outer-spin-button,.score-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.score-add-btn{flex:0 0 auto;padding:.3rem .6rem}.score-history{display:flex;flex-wrap:wrap;gap:.3rem;padding:.25rem 0 .35rem 1.1rem}.score-chip{font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:700;padding:1px 7px;border-radius:999px;background:#50c88247}.score-chip.is-neg{background:#dc5a504d}.score-bar{display:flex;align-items:center;gap:.4rem;padding:.5rem .6rem;border-top:1px solid rgba(255,255,255,.1);flex-shrink:0;flex-wrap:wrap}.score-bar-spacer{flex:1 1 auto}.score-writer-label{display:flex;flex-direction:column;gap:2px;font-size:.7rem;color:#ffffffb3}.score-writer{max-width:13rem}.score-bar-btn{padding:.3rem .6rem}.score-bar-del{color:#ffb3ac}.score-toast{position:fixed;top:64px;left:50%;transform:translate(-50%);z-index:1800;background:#142e25f5;color:#fff;border:1px solid rgba(255,230,110,.6);box-shadow:0 8px 28px #00000080;padding:.5rem 1rem;border-radius:999px;font-weight:700;pointer-events:none;animation:score-toast-in .18s ease-out}@keyframes score-toast-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.log-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.log-panel-header h3{margin:0;font-size:1rem}.log-panel-header-actions{display:flex;align-items:center;gap:.5rem}.log-panel-undo{background:#ffe66ef2;color:#1a1a1a;border:0;border-radius:6px;padding:.35rem .9rem;font-size:.85rem;font-weight:700;cursor:pointer}.log-panel-undo:hover:not(:disabled){background:#fff082}.log-panel-undo:disabled{background:#ffffff1f;color:#f3f3f373;cursor:default}.log-entry.next-undo{background:#ffe66e14;border-left:2px solid rgba(255,230,110,.55);padding-left:.4rem;margin-left:-.5rem}.log-group{display:flex;flex-direction:column}button.log-entry.log-group-parent{background:#ffffff08;border:0;border-bottom:1px solid rgba(255,255,255,.05);color:inherit;cursor:pointer;text-align:left;font:inherit;width:100%}button.log-entry.log-group-parent:hover{background:#ffffff0f}.log-group-arrow{display:inline-block;width:1.1rem;font-size:.75rem;color:#f3f3f38c}.log-group-children{padding-left:1.5rem;border-left:2px solid rgba(255,255,255,.06);margin-left:.4rem;display:flex;flex-direction:column}.log-entry.log-group-child{font-size:.8rem;opacity:.85;border-bottom:1px dashed rgba(255,255,255,.04)}.log-panel-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.5rem 1rem 1rem;display:flex;flex-direction:column;gap:.35rem}.log-entry{display:grid;grid-template-columns:5.5rem 1fr auto;align-items:baseline;gap:.5rem;font-size:.85rem;padding:.3rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.log-entry-time{font-variant-numeric:tabular-nums;color:#f3f3f38c;font-size:.75rem}.log-entry-summary{color:#f3f3f3}.log-entry.undone .log-entry-summary{text-decoration:line-through;opacity:.55}.log-entry.undo .log-entry-summary{color:#ffe66eeb;font-style:italic}.log-entry.minor .log-entry-summary{opacity:.6}.log-delta{flex:0 0 auto;margin-left:auto;padding:0 6px;border-radius:999px;font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.5;white-space:nowrap}.log-delta-pos{color:#0b3d24;background:#50dc8cd9}.log-delta-neg{color:#4a0f12;background:#f49696e6}.log-entry-undo{background:#ffe66ef2;color:#1a1a1a;border:0;border-radius:6px;padding:.2rem .6rem;font-size:.75rem;font-weight:700;cursor:pointer}.log-entry-undo:hover{background:#fff082}.log-more-btn{margin-top:.5rem;align-self:center;background:#ffffff1f;color:#f3f3f3;border:0;border-radius:6px;padding:.4rem 1rem;cursor:pointer;font-size:.85rem}.log-more-btn:hover{background:#fff3}.chat-banner{display:flex;flex-direction:row;align-items:center;gap:.4rem;width:100%;border:0;border-bottom:1px solid rgba(0,0,0,.25);padding:.22rem .45rem;background:#3b4046;color:#e9eaec;font-size:.78rem;text-align:left;flex-shrink:0;height:2.7rem;overflow:hidden}.chat-banner-pill{flex:1 1 auto;min-width:0;align-self:stretch;display:flex;align-items:center;gap:.5rem;background:#fff;color:#161616;border-radius:1.4rem;padding:.1rem .85rem;overflow:hidden}.panel-chatbar-static .chat-banner-pill{cursor:pointer}.chat-banner-pill.chat-banner--glow{animation:action-glow 1s ease-out}.chat-banner-lines{display:flex;flex-direction:column;justify-content:flex-end;gap:.15rem;flex:1;min-width:0;height:100%;overflow:hidden}.chat-banner-line{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.chat-banner-line strong{font-weight:700}.chat-banner-lines .chat-banner-line{flex-shrink:0}.chat-banner-line--single{white-space:nowrap}.chat-banner-line--clamp{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.chat-banner-empty{opacity:.7;font-style:italic}.chat-banner-expand{flex-shrink:0;background:none;border:0;color:inherit;font-size:.72rem;font-weight:700;opacity:.8;cursor:pointer;padding:.15rem .25rem;white-space:nowrap;min-height:0}.chat-banner-expand:hover{opacity:1}.chat-banner.mobile{height:auto;min-height:0;padding:.1rem .5rem}.chat-banner.mobile .chat-banner-line{flex:0 0 auto;min-width:0}.panel-divider-chat{height:auto;background:transparent;cursor:grab}.panel-divider-chat:hover,.panel-divider-chat:active{background:transparent}.panel-divider-chat:active{cursor:grabbing}.panel-divider-chat:before,.panel-divider-chat:after{display:none}.chat-banner--divider{cursor:inherit;padding-left:.3rem;padding-right:.3rem;gap:.3rem}.chat-banner--divider:not(.mobile){height:auto;min-height:1.7rem}.chat-banner--bare{height:1.7rem;min-height:1.7rem;justify-content:space-between}.chat-banner--hint{height:auto;min-height:1.7rem}.chat-banner-hint-text{flex:1;text-align:center;font-size:.72rem;font-style:italic;opacity:.75;line-height:1.2;padding:2px 4px}.chat-banner--divider .chat-banner-lines,.chat-banner.mobile .chat-banner-lines{justify-content:center}.chat-banner--divider .chat-banner-expand{cursor:pointer}.chat-banner-grip{flex:0 0 auto;width:12px;height:18px;background-image:radial-gradient(circle,rgba(255,255,255,.6) 1px,transparent 1.2px);background-size:4px 6px;background-position:center;background-repeat:round;opacity:.75;pointer-events:none}.panel-chatbar-static{flex-shrink:0}.chat-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.5rem 1rem;display:flex;flex-direction:column;gap:.35rem}.chat-msg{display:flex;flex-direction:column;gap:.1rem;padding:.35rem .55rem;border-radius:8px;background:#ffffff0d;max-width:85%;align-self:flex-start}.chat-msg--mine{align-self:flex-end;background:#78be9638}.chat-msg--macro{align-self:stretch;max-width:none;background:#ffe66e38;border:1px solid rgba(255,230,110,.5)}.chat-msg-name{font-size:.7rem;font-weight:700;opacity:.7}.chat-msg-text{font-size:.9rem;word-break:break-word;white-space:pre-wrap}.chat-compose{display:flex;gap:.5rem;padding:.6rem 1rem .75rem;border-top:1px solid rgba(255,255,255,.08);flex-shrink:0}.chat-readonly{padding:.55rem 1rem .7rem;border-top:1px solid rgba(255,255,255,.08);flex-shrink:0;font-size:.8rem;opacity:.6;font-style:italic}.chat-input{flex:1;min-width:0;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:.45rem .6rem;color:#f3f3f3;font-size:.9rem}.chat-input:focus{outline:none;border-color:#fff6}.chat-send{flex-shrink:0}.chat-send:disabled{opacity:.45;cursor:default}.log-panel--dock{position:fixed;left:8px;width:calc(100vw - 16px);z-index:1500;opacity:1;max-height:none;box-shadow:0 10px 40px #0009;border:1px solid rgba(255,255,255,.12)}.log-panel--dock-top{top:8px;bottom:calc(50vh + 1px)}.log-panel--dock-bottom{top:calc(50vh + 1px);bottom:8px}@media (max-width: 768px){.hand{flex:1 1 auto;min-height:0;overflow:hidden;align-items:flex-start}.hand .hand-card{margin-top:var(--row-m, 0px)}.hand-toolbar{flex:0 0 auto}.panel-toolbar,.panel-divider-vertical{display:none}.scene-header button{min-height:32px;padding:.25rem .5rem;font-size:.85rem}.scene-header{padding:.3rem .6rem;gap:.45rem}.scene-header .header-left strong{font-size:.95rem}.scene-header .tag{font-size:.65rem}.icon-btn{min-width:32px;padding:.25rem .4rem}button{min-height:44px}.panel-btn{min-width:44px;min-height:44px;padding:0;display:flex;align-items:center;justify-content:center}.hand-sort-btn{min-height:44px;padding:0 .75rem}.hand-auto-label{min-height:44px;align-items:center}.hand-auto-label input[type=checkbox]{width:20px;height:20px}.scene-header{padding:.4rem .6rem;flex-wrap:nowrap;gap:.4rem}.scene-header .header-left,.scene-header .header-right{flex-wrap:nowrap;gap:.35rem}.scene-header .header-left{flex:1 1 auto;min-width:0}.scene-header .header-right{flex:0 0 auto}.scene-header .tag{white-space:nowrap;flex:0 0 auto}.header-left strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px;display:block}.scene-header button{padding:.25rem .45rem}.seats{padding:.35rem .75rem;gap:.4rem;font-size:.78rem}.seat{max-width:calc(50% - .4rem)}.seat-offline-tag{display:none}.modal-row{flex-direction:column;align-items:flex-start;gap:.35rem}.modal-row label{min-height:44px;align-items:center;width:100%}.modal-actions{flex-direction:column-reverse;gap:.4rem}.modal-actions button{width:100%;justify-content:center}.popup-menu{width:min(260px,90vw)}.popup-menu button{min-height:44px;display:flex;align-items:center}}.cheat-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-right:34px}.cheat-sheet-head h3{margin:0}.practice-strip{position:fixed;top:calc(env(safe-area-inset-top,0px) + 8px);left:50%;transform:translate(-50%);width:min(620px,calc(100vw - 24px));background:#0b1e17f5;border:1px solid #2c7a57;border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:6px;box-shadow:0 6px 24px #00000073;z-index:1600;cursor:grab;touch-action:none}.practice-strip:active{cursor:grabbing}.practice-strip--flash{animation:practice-strip-flash .45s ease-out}@keyframes practice-strip-flash{0%,to{background:#0b1e17f5;border-color:#2c7a57}35%{background:#785f14f7;border-color:#e9c64a}}.practice-grip{align-self:center;margin:-4px 0 -2px;letter-spacing:3px;font-size:.8rem;line-height:1;color:#6fd6a4;opacity:.65}.practice-strip--low{top:76px}.practice-finished-strip{cursor:default;border-color:#4ade80;align-items:center;text-align:center}.practice-finished-strip .practice-goal{align-items:center}.practice-check.small{width:40px;height:40px;border-radius:50%;background:#4ade80;color:#0b3d2c;font-size:24px;font-weight:900;display:flex;align-items:center;justify-content:center}.practice-progress{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:#6fd6a4}.practice-goal{display:flex;flex-direction:column;gap:2px}.practice-goal strong{font-size:.98rem}.practice-step-check{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:1px 8px;border-radius:999px;background:#4ade80;color:#0b3d2c;font-size:.72rem;font-weight:800;vertical-align:middle;white-space:nowrap}.practice-hint{font-size:.82rem;color:#9fcdb9}.practice-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.practice-actions button{font-size:.8rem;padding:4px 10px}.practice-end{opacity:.8}.practice-complete{position:fixed;top:40%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:1650;pointer-events:none}.practice-check{width:76px;height:76px;border-radius:50%;background:#4ade80;color:#0b3d2c;font-size:44px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 28px #00000080;animation:practice-pop .4s ease-out}@keyframes practice-pop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.12);opacity:1}to{transform:scale(1);opacity:1}}.practice-tip{background:#0b1e17f5;border:1px solid #2c7a57;border-radius:10px;padding:8px 14px;font-size:.88rem;max-width:min(420px,90vw);text-align:center}.practice-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1700}.practice-intro{background:#143a2c;border-radius:14px;padding:1.3rem;width:min(420px,92vw);display:flex;flex-direction:column;gap:.75rem}.practice-intro h3{margin:0}.practice-required-note{margin:0;padding:8px 12px;border-radius:8px;background:#d633842e;border:1px solid rgba(232,70,150,.5);font-size:.88rem;font-weight:600}.practice-controls{display:flex;flex-direction:column;gap:6px;margin:0}.practice-control-row{display:flex;justify-content:space-between;gap:12px;font-size:.86rem}.practice-control-row dt{font-weight:700;color:#cfeede}.practice-control-row dd{margin:0;color:#9fcdb9;text-align:right}.practice-prompt{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);left:50%;transform:translate(-50%);width:min(440px,calc(100vw - 24px));background:#0b1e17f7;border:1px solid #2c7a57;border-radius:12px;padding:12px 16px;display:flex;flex-direction:column;gap:10px;box-shadow:0 6px 24px #00000073;z-index:1550}.practice-prompt-actions{display:flex;gap:8px;justify-content:flex-end}@media (max-width: 768px){.practice-strip{width:calc(100vw - 12px);padding:8px 10px;gap:4px}.practice-strip .practice-actions{gap:5px;flex-wrap:nowrap;justify-content:center}.practice-strip .practice-actions button{min-height:34px;padding:4px 8px;font-size:.72rem;white-space:nowrap}.practice-strip .practice-goal strong{font-size:.9rem}.practice-strip .practice-hint{font-size:.76rem}}.clubwatch{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px;color:#f3f3f3;background:#0b1410}.clubwatch-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.clubwatch-head h1{margin:0;font-size:1.3rem;letter-spacing:.5px}.clubwatch-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cw-delta-toggles{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;padding:4px 10px;border:1px solid rgba(255,255,255,.18);border-radius:8px}.cw-delta-toggles .cw-delta-label{opacity:.7}.cw-delta-toggles label{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.cw-delta-toggles input{cursor:pointer}.clubwatch-count{opacity:.6;font-size:.85rem}.clubwatch-loading{opacity:.6}.clubwatch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(540px,1fr));gap:12px}.clubwatch-card{background:#15211b;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;min-width:0}.clubwatch-card-top .clubwatch-name{flex:0 1 auto;min-width:0}.clubwatch-card-top .clubwatch-trash{margin-left:auto}.clubwatch-card-top .clubwatch-host{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:55%;font-size:1rem;padding:1px 10px;border-radius:999px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#ffffff24;color:#fff}.clubwatch-card.cw-allon .clubwatch-host{background:#3ddc6e;color:#06371b}.clubwatch-card.cw-someon .clubwatch-host{background:#3a8ef0;color:#fff}.clubwatch-card.cw-amber .clubwatch-host{background:#f5d020;color:#3a2e00}.clubwatch-card.cw-red .clubwatch-host{background:#d0453b;color:#fff}.clubwatch-card.cw-allon{border-color:#3ddc6e;border-width:2px}.clubwatch-card.cw-someon{border-color:#3a8ef0;border-width:2px}.clubwatch-card.cw-amber{border-color:#f5d020;border-width:2px}.clubwatch-card.cw-red{border-color:#d0453b;border-width:2px}.cw-thumb-wrap{cursor:pointer;border-radius:8px}.cw-thumb-wrap:hover .cw-thumb{outline:2px solid rgba(120,220,255,.75);outline-offset:-2px}.cw-thumb-wrap:active{transform:translateY(1px)}.cw-thumb{display:block;width:100%;height:120px;background:#0a5f45;border-radius:8px;border:1px solid rgba(0,0,0,.3)}.clubwatch-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;position:relative}.clubwatch-name{font-weight:700;font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clubwatch-trash{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;color:#fff;opacity:.85;padding:3px 5px;border-radius:6px}.clubwatch-trash:hover{opacity:1;background:#dc464659}.clubwatch-tags{display:flex;flex-wrap:wrap;gap:5px}.cw-tag{font-size:.68rem;padding:1px 7px;border-radius:999px;background:#ffffff1f;text-transform:uppercase;letter-spacing:.4px}.cw-tag.cw-play{background:#50c8824d}.cw-tag.cw-setup{background:#dcbe4647}.cw-tag.cw-persist{background:#78a0ff52}.clubwatch-stats{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;font-size:.82rem}.clubwatch-stats>div{display:flex;justify-content:space-between;gap:8px}.clubwatch-stats dt{opacity:.55;margin:0}.clubwatch-stats dd{margin:0;font-weight:600}.clubwatch-logs{display:flex;flex-direction:column;gap:2px;border-top:1px solid rgba(255,255,255,.08);padding-top:8px}.clubwatch-logline{font-size:.78rem;opacity:.8;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clubwatch-card-links{display:flex;align-items:center;gap:14px;border-top:1px solid rgba(255,255,255,.08);padding-top:8px}.clubwatch-card-links button{background:none;border:0;padding:0;cursor:pointer;color:#bff0db;font:inherit;font-size:.8rem;font-weight:700}.clubwatch-card-links button:hover{color:#fff;text-decoration:underline}.cw-menu{position:relative;margin-left:auto}.clubwatch-card-links .cw-menu-btn{font-size:1.2rem;line-height:1;padding:0 4px;letter-spacing:.05em}.cw-menu-pop{position:absolute;right:0;bottom:calc(100% + 6px);z-index:30;display:flex;flex-direction:column;gap:10px;align-items:flex-start;min-width:150px;padding:10px;background:#14211c;border:1px solid rgba(255,255,255,.16);border-radius:8px;box-shadow:0 6px 22px #00000080}.cw-menu-pop>*{white-space:nowrap}.cw-grant{display:inline-flex;align-items:center;gap:4px}.cw-grant select{background:#1a1a1a;color:#e6e6e6;border:1px solid rgba(255,255,255,.18);border-radius:3px;font:inherit;font-size:.75rem;padding:1px 2px}.host-code-value{flex:1;font-size:2rem;font-weight:800;letter-spacing:.12em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.cw-copyable{display:inline-flex;align-items:center;gap:6px;min-width:0}.clubwatch-stats>div.cw-wide{grid-column:1 / -1;min-width:0}.clubwatch-stats>div.cw-wide dd{min-width:0;flex:1;justify-content:flex-end;text-align:right}.cw-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cw-copy{display:inline-flex;align-items:center;justify-content:center;background:none;border:0;padding:1px;cursor:pointer;color:#bff0db;opacity:.7;border-radius:4px}.cw-copy:hover{opacity:1;color:#fff;background:#ffffff1f}.admin-table-links{margin-left:auto;display:flex;gap:14px}.admin-table-links button{background:none;border:0;padding:0;cursor:pointer;color:#bff0db;font:inherit;font-weight:700}.admin-table-links button:hover{color:#fff;text-decoration:underline}.chat-msg--manager .chat-msg-name{color:#ff6b6b;font-weight:800}.chat-msg--manager .chat-msg-text{color:#ffb3b3}.admin-table{display:flex;flex-direction:column;height:100%;background:#0b6e4f}.admin-table-head{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:8px 12px;background:#0b1410;color:#f3f3f3;border-bottom:1px solid rgba(0,0,0,.4)}.admin-table-name{font-weight:700}.admin-table-sub{opacity:.6;font-size:.82rem}.admin-table-panel{flex:1;display:flex;min-height:0;position:relative}.admin-opaque .log-panel{background-color:#142e25}@media (max-width: 768px){.clubwatch{padding:10px;overflow-x:hidden}.clubwatch-head{flex-wrap:wrap}.clubwatch-head h1{font-size:1.1rem}.clubwatch-grid{grid-template-columns:minmax(0,1fr)}.clubwatch-stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.clubwatch-stats dd{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-thumb{height:150px}.admin-table-head{flex-wrap:wrap;gap:8px;padding:6px 10px}.admin-table-name{font-weight:700}.admin-table-sub{font-size:.78rem}.admin-table-links{margin-left:auto}}.points-balance{margin:0 0 .75rem;font-size:1rem}.points-expiry{margin:0 0 .5rem;font-size:.85rem;opacity:.85}.upgrade-section{margin-top:1rem}.upgrade-section h4{margin:0 0 .5rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;opacity:.8}.upgrade-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:8px;background:#ffffff0f}.upgrade-row-info{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.upgrade-row-info .muted{font-size:.8rem}.upgrade-row button{flex:0 0 auto;white-space:nowrap}.upgrade-owned{flex:0 0 auto;font-size:.8rem;font-weight:600;color:#bff0db;padding:.25rem .6rem;border:1px solid rgba(191,240,219,.4);border-radius:999px}.style-list{display:flex;flex-direction:column;gap:.5rem}.style-row{display:flex;align-items:center;gap:.6rem}.style-row .style-label{flex:1 1 auto}.style-row button{flex:0 0 auto}.style-mini{flex:0 0 auto;display:inline-block}.modal.cardbacks-admin{width:min(620px,94vw);max-height:86vh;overflow-y:auto}.cba-list{display:flex;flex-direction:column;gap:.6rem}.cba-row{display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap;padding-bottom:.6rem;border-bottom:1px solid rgba(255,255,255,.08)}.cba-surface{flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:var(--table-surface-bg);background-size:cover;background-position:center;box-shadow:inset 0 0 0 2px #0000002e}.cba-meta{flex:1 1 130px;min-width:110px;align-self:center}.cba-name{font-weight:700}.cba-label-input{font:inherit;font-weight:700;width:100%;background:#1a1a1a;color:#e6e6e6;border:1px solid rgba(255,255,255,.25);border-radius:5px;padding:3px 5px}.cba-tags{display:flex;align-items:center;gap:6px;margin-top:3px;flex-wrap:wrap}.cba-count{font-size:.78rem;opacity:.6}.cba-pill{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:1px 6px;border-radius:999px}.cba-pill.cba-live{background:#3ddc6e40;color:#8ef0b0}.cba-pill.cba-cand{background:#f5d02038;color:#f3da6a}.cba-pill.cba-warn{background:#d0453b4d;color:#f0a59e}.cba-field{display:flex;flex-direction:column;gap:2px;font-size:.72rem;opacity:.85}.cba-field input,.cba-field select{font:inherit;font-size:.85rem;padding:3px 5px;border-radius:5px;border:1px solid rgba(255,255,255,.25);background:#1a1a1a;color:#e6e6e6;width:4.6rem}.cba-field input:disabled{opacity:.5}.cba-actions{display:flex;flex-direction:column;gap:4px;align-self:center}.cba-unpublish{background:none;border:0;padding:0;cursor:pointer;color:#f0a59e;font:inherit;font-size:.72rem;text-decoration:underline}.cba-row.cba-dirty{border-left:3px solid #f3da6a;padding-left:6px;margin-left:-9px}.cba-live-toggle{align-self:center}.cba-live-toggle input{width:auto}.cardface-row{align-items:flex-start;gap:.9rem}.cardface-preview{flex:0 0 auto;display:flex;flex-direction:column;gap:4px;padding:6px;background:#0003;border-radius:8px}.cardface-suit-row{display:flex;gap:4px}.cardface-card{display:inline-block}.cardface-fields{flex:1 1 220px;min-width:200px;display:flex;flex-direction:column;gap:6px}.cardface-desc{font:inherit;font-size:.82rem;resize:vertical;background:#1a1a1a;color:#e6e6e6;border:1px solid rgba(255,255,255,.25);border-radius:5px;padding:4px 6px}.cardface-knobs{display:flex;gap:.6rem;flex-wrap:wrap}.cardface-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.cfc{display:flex;flex-direction:column;align-items:center;gap:4px}.cfc-arrow{background:none;border:0;cursor:pointer;line-height:1;font-size:1rem;color:inherit;opacity:.7;padding:2px 8px}.cfc-arrow:hover{opacity:1}.cfc-track{height:200px;overflow-y:auto;scroll-snap-type:y mandatory;display:flex;flex-direction:column;gap:8px;padding:70px 0;-ms-overflow-style:none;scrollbar-width:none}.cfc-track::-webkit-scrollbar{display:none}.cfc-item{scroll-snap-align:center;flex:0 0 auto;cursor:pointer;opacity:.4;transform:scale(.82);transition:opacity .18s,transform .18s}.cfc-item.is-center{opacity:1;transform:scale(1);cursor:default}.cfc-cards{display:flex;gap:3px;justify-content:center}.cfc-card{display:inline-block}.cfc-info{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:3.2rem}.cba-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.12);background:inherit}.cba-saved{color:#8ef0b0;font-size:.82rem;font-weight:700;margin-right:auto}.cba-discard{background:none;border:0;padding:0;cursor:pointer;color:#cbd2da;font:inherit;font-size:.82rem;text-decoration:underline}.help-bubble{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex:none;vertical-align:middle;margin-left:.4em;width:1.1em;height:1.1em;min-width:1.1em;min-height:1.1em;max-width:1.1em;max-height:1.1em;padding:0;border:0;border-radius:50%;background:#fff;color:#000;cursor:pointer;font:inherit;font-size:.85em;font-weight:700;line-height:1;opacity:.85}.help-bubble:hover,.help-bubble:focus-visible,.help-bubble[aria-expanded=true]{opacity:1;outline:none}.help-bubble-pop{position:fixed;transform:translate(-50%);z-index:9000;background:#1f1f1f;color:#f0f0f0;border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:6px 9px;font-size:.8rem;font-weight:400;line-height:1.35;width:max-content;max-width:240px;box-shadow:0 4px 14px #00000073;text-align:left}.deck-list-intro{margin:0 0 .4rem}.deck-builder{max-width:min(560px,96vw)}.deck-builder-name{align-self:stretch;background:#1a1a1a;color:#e6e6e6;border:1px solid rgba(255,255,255,.18);border-radius:5px;font:inherit;padding:6px 8px;margin-bottom:.6rem}.deck-builder-jokers{display:flex;align-items:center;gap:10px;margin-bottom:.5rem}.deck-builder-jokers button{min-width:30px;min-height:30px;font-size:1.1rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:5px;color:#e6e6e6;cursor:pointer}.deck-builder-jokers button:disabled{opacity:.4;cursor:default}.deck-builder-hint{margin:0 0 .4rem;font-size:.75rem}.deck-builder-grid{display:grid;grid-template-columns:auto repeat(13,minmax(0,1fr));gap:3px;align-self:stretch}.deck-builder-grid .contents{display:contents}.dbg-corner{background:none;border:0}.dbg-head{background:none;border:0;color:#ffffffb3;font:inherit;font-weight:700;font-size:.72rem;cursor:pointer;padding:2px}.dbg-head.red{color:#ff8a8a}.dbg-head:hover{color:#fff}.dbg-cell{background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#e6e6e6;font:inherit;font-size:.68rem;font-weight:600;padding:3px 1px;cursor:pointer;white-space:nowrap;overflow:hidden}.dbg-cell.red{color:#ff9c9c}.dbg-cell.is-out{opacity:.3;text-decoration:line-through;background:#ffffff08}.deck-builder-count{margin:.6rem 0 .2rem}.card-joker .pip{font-size:1.6em}.card-joker .corner-rank{font-size:.42em;letter-spacing:.02em}.modal.deck-set-builder{width:min(760px,96vw);max-height:90vh;overflow-y:auto}.dsb-meta{display:flex;align-items:flex-end;gap:.8rem;flex-wrap:wrap;margin-bottom:.5rem}.dsb-name{flex:1 1 220px;background:#1a1a1a;color:#e6e6e6;border:1px solid rgba(255,255,255,.18);border-radius:5px;font:inherit;padding:6px 8px}.dsb-cost{display:flex;align-items:center;gap:5px;font-size:.8rem}.dsb-cost input{width:4.6rem;font:inherit;padding:4px 6px;background:#1a1a1a;color:#e6e6e6;border:1px solid rgba(255,255,255,.25);border-radius:5px}.dsb-publish{display:flex;align-items:center;gap:6px;font-size:.85rem;white-space:nowrap}.dsb-hint{margin:0 0 .6rem;font-size:.78rem}.dsb-tray{display:flex;align-items:center;gap:10px}.dsb-tray-label{font-size:.8rem;font-weight:700;opacity:.85}.dsb-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:.6rem;padding:8px 10px;background:#ffffff0d;border-radius:8px}.dsb-tool-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dsb-tool-actions button{font-size:.78rem;padding:4px 9px}.dsb-suits{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:.6rem;padding:8px 10px;background:#ffffff0d;border-radius:8px}.dsb-suits-label{font-size:.8rem;font-weight:700;opacity:.85;padding-top:5px}.dsb-suit-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dsb-suit-chip{display:flex;align-items:center;gap:4px;padding:3px 4px 3px 7px;border-radius:7px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12)}.dsb-suit-glyph{font-size:1.1rem;line-height:1}.dsb-suit-color{font:inherit;font-size:.78rem;padding:2px 4px;border-radius:5px;background:#1a1a1a;color:#e6e6e6;border:1px solid rgba(255,255,255,.25)}.dsb-suit-remove{font:inherit;font-size:.8rem;line-height:1;padding:2px 6px;border:0;border-radius:5px;cursor:pointer;background:transparent;color:#f0a59e}.dsb-suit-remove:hover:not(:disabled){background:#dc464640}.dsb-suit-add{font:inherit;font-size:.8rem;font-weight:600;padding:5px 10px;border-radius:7px;border:1px dashed rgba(255,255,255,.35);background:transparent;color:#bff0db;cursor:pointer}.dsb-suit-add:disabled{opacity:.4;cursor:default}.dsb-zones{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;align-self:stretch}@media (max-width: 560px){.dsb-zones{grid-template-columns:1fr}}.dsb-zone{border-radius:10px;padding:8px;min-height:150px;border:2px dashed transparent;transition:border-color .12s,background .12s}.dsb-zone.is-over{border-color:#ffffffb3}.dsb-deck{background:radial-gradient(circle at center,#0c7a57,#095f44 75%,#074d36);box-shadow:inset 0 0 0 1px #00000040}.dsb-removed{background:#ffffff0d;box-shadow:inset 0 0 0 1px #ffffff14}.dsb-zone-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;opacity:.85;margin-bottom:6px}.dsb-zone-count{background:#0000004d;border-radius:999px;padding:1px 8px;font-size:.72rem;letter-spacing:0}.dsb-zone-actions{display:flex;gap:5px}.dsb-zone-actions button{font:inherit;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:3px 8px;border-radius:5px;cursor:pointer;background:#00000047;color:#e6e6e6;border:1px solid rgba(255,255,255,.18)}.dsb-zone-actions button:disabled{opacity:.4;cursor:default}.dsb-grid{display:flex;flex-wrap:wrap;gap:4px;align-content:flex-start;max-height:34vh;overflow-y:auto;overscroll-behavior:contain}.dsb-empty{font-size:.78rem;opacity:.55;margin:.4rem}.dsb-card{position:relative;flex:0 0 auto;width:34px;height:46px;padding:2px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background:#fdfdfd;color:#1a1a1a;border:1px solid rgba(0,0,0,.35);border-radius:5px;font:inherit;line-height:1;cursor:grab;box-shadow:0 1px 2px #00000059;touch-action:none;user-select:none;-webkit-user-select:none}.dsb-card:active{cursor:grabbing}.dsb-card.red{color:#c8102e}.dsb-card.joker{align-items:center;justify-content:center}.dsb-card.is-selected{outline:2px solid #28e0e0;outline-offset:1px;box-shadow:0 0 0 2px #28e0e073,0 1px 2px #00000059}.dsb-card-rank{font-size:.74rem;font-weight:700}.dsb-card-suit{font-size:.82rem}.dsb-card-joker{font-size:1.3rem}.dsb-ghost{position:fixed;z-index:1200;transform:translate(-50%,-50%);pointer-events:none;opacity:.92}.dsb-ghost .dsb-card{box-shadow:0 4px 12px #00000080}.dsb-ghost-badge{position:absolute;top:-8px;right:-8px;min-width:18px;height:18px;padding:0 4px;display:flex;align-items:center;justify-content:center;background:#28e0e0;color:#04302f;border-radius:999px;font-size:.7rem;font-weight:800}.dsb-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300}.dsb-menu{position:fixed;z-index:1310;transform:translate(-4px,6px);display:flex;flex-direction:column;min-width:130px;background:#232323;border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:4px;box-shadow:0 8px 24px #00000080}.dsb-menu button{text-align:left;background:none;border:0;color:#e6e6e6;font:inherit;padding:8px 10px;border-radius:5px;cursor:pointer}.dsb-menu button:hover{background:#ffffff1a}.float-bubble-stack{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;pointer-events:none}.float-bubble{pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;height:auto;padding:.8rem 1.5rem;border-radius:999px;color:#fff;border:1px solid rgba(255,255,255,.3);box-shadow:0 12px 34px #00000080;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;font:inherit;text-align:center}.float-bubble:active{cursor:grabbing}.float-bubble--freeze{background:#2563eb}.float-bubble--freeze:hover{background:#1d4ed8}.float-bubble--deal{background:#16a34a}.float-bubble--deal:hover{background:#15803d}.float-bubble-cta{font-size:1.05rem;font-weight:700}.setups-panel{width:min(480px,95vw)}.setups-list{display:flex;flex-direction:column;gap:.5rem;max-height:55vh;overflow-y:auto}.setups-empty{color:#888;font-size:.9rem;padding:.5rem 0}.setups-error{color:#f88;font-size:.85rem;margin-bottom:.5rem}.setups-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:#ffffff0f;border-radius:8px;flex-wrap:wrap}.setups-row-info{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0}.setups-row-load{cursor:pointer;border-radius:6px}.setups-row-load:hover strong{text-decoration:underline}.setups-row-info strong{font-size:.9rem}.setups-row-info .muted{font-size:.78rem}.setups-row-actions{display:flex;gap:.35rem;flex-wrap:wrap}.setups-row-actions button{font-size:.8rem;padding:.25rem .6rem}.setups-delete{color:#f88!important}.dot-menu{position:relative;flex-shrink:0}.dot-menu-btn{font-size:1rem;letter-spacing:.05em;padding:.25rem .55rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#bbb;cursor:pointer;line-height:1}.dot-menu-btn:hover{background:#ffffff26;color:#fff}.dot-menu-dropdown{z-index:1200;background:#1c2820;border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:.25rem;min-width:130px;box-shadow:0 6px 20px #0000008c;display:flex;flex-direction:column;gap:.05rem}.dot-menu-dropdown button{display:block;width:100%;text-align:left;padding:.45rem .8rem;font-size:.85rem;background:transparent;border:none;border-radius:5px;color:#ddd;cursor:pointer}.dot-menu-dropdown button:hover:not(:disabled){background:#ffffff1a;color:#fff}.dot-menu-dropdown button:disabled{opacity:.45;cursor:default}.setups-badge{display:inline-block;font-size:.72rem;padding:.1rem .45rem;border-radius:999px;font-weight:600}.setups-badge.submitted{background:#ffc83233;color:#ffc832}.setups-save-row{display:flex;align-items:center;gap:.75rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.1);margin-top:.25rem}.setups-save-overlay{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;background:#00000059;border-radius:10px;margin-top:.5rem}.setups-save-overlay label{display:flex;flex-direction:column;align-items:stretch;gap:.4rem;font-size:.85rem}.setups-save-overlay input,.setups-save-overlay textarea{width:100%;box-sizing:border-box}.setups-save-overlay input{padding:.5rem .7rem;border-radius:6px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:.9rem}.setups-save-overlay textarea{padding:.5rem .7rem;border-radius:6px;resize:vertical;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:.85rem;font-family:inherit}.setups-confirm{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:#0006;border-radius:10px;margin-top:.5rem}.setups-confirm p{margin:0;font-size:.85rem;color:#ccc}.setup-preview{display:flex;flex-direction:column;height:100%;background:#0b1410;color:#f3f3f3;overflow:hidden}.setup-preview-header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#101c16;border-bottom:1px solid rgba(255,255,255,.09);flex-shrink:0;flex-wrap:wrap}.setup-preview-title{font-weight:700;font-size:1.1rem;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setup-preview-body{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}.setup-preview-canvas{flex:1 1 auto;min-width:0;min-height:0;display:flex;align-items:stretch;justify-content:stretch;background:#0a5f45;overflow:hidden}.setup-preview-sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:0;overflow-y:auto;background:#101c16;border-left:1px solid rgba(255,255,255,.09)}.setup-preview-section{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.sp-setting-row{display:flex;justify-content:space-between;gap:8px;font-size:.83rem}.sp-label{opacity:.6;flex-shrink:0}.sp-field-label{font-size:.78rem;opacity:.7;font-weight:600;letter-spacing:.02em}.sp-select{font:inherit;font-size:.88rem;padding:5px 8px;border-radius:7px;border:1px solid rgba(255,255,255,.2);background:#ffffff12;color:inherit;cursor:pointer}.sp-textarea{font:inherit;font-size:.88rem;padding:6px 10px;border-radius:7px;border:1px solid rgba(255,255,255,.2);background:#ffffff12;color:inherit;resize:vertical;min-height:64px}.sp-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.danger-btn{background:#c0392b!important;color:#fff!important;font-weight:700}.danger-btn:hover{background:#d0453b!important}@media (max-width: 680px){.setup-preview-body{flex-direction:column;overflow-y:auto}.setup-preview-canvas{min-height:260px;flex:0 0 260px}.setup-preview-sidebar{width:100%;border-left:none;border-top:1px solid rgba(255,255,255,.09);overflow-y:visible}}
