:root{--bg: var(--tg-theme-secondary-bg-color, #f1f1f4);--card: var(--tg-theme-section-bg-color, var(--tg-theme-bg-color, #ffffff));--text: var(--tg-theme-text-color, #111111);--hint: var(--tg-theme-hint-color, #8a8a8e);--accent: var(--tg-theme-button-color, #2481cc);--accent-text: var(--tg-theme-button-text-color, #ffffff);--link: var(--tg-theme-link-color, #2481cc);--danger: var(--tg-theme-destructive-text-color, #e53935);--separator: color-mix(in srgb, var(--hint) 25%, transparent);--tabbar-h: 60px;--safe-top: calc(max(env(safe-area-inset-top, 0px), var(--tg-safe-area-inset-top, 0px)) + var(--tg-content-safe-area-inset-top, 0px));--safe-bottom: calc(max(env(safe-area-inset-bottom, 0px), var(--tg-safe-area-inset-bottom, 0px)) + var(--tg-content-safe-area-inset-bottom, 0px));--safe-left: calc(max(env(safe-area-inset-left, 0px), var(--tg-safe-area-inset-left, 0px)) + var(--tg-content-safe-area-inset-left, 0px));--safe-right: calc(max(env(safe-area-inset-right, 0px), var(--tg-safe-area-inset-right, 0px)) + var(--tg-content-safe-area-inset-right, 0px));color-scheme:light dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: var(--tg-theme-secondary-bg-color, #0f0f10);--card: var(--tg-theme-section-bg-color, var(--tg-theme-bg-color, #1c1c1e));--text: var(--tg-theme-text-color, #f2f2f2)}}*{box-sizing:border-box}html,body{height:100%;overflow:hidden;overscroll-behavior:none;margin:0;background:var(--bg);color:var(--text);font:15px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}h1{font-size:22px;margin:4px 0 12px}button{font:inherit;color:inherit}.app{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;width:100%;max-width:640px;margin:0 auto;padding:calc(12px + var(--safe-top)) calc(16px + var(--safe-right)) 16px calc(16px + var(--safe-left))}.center-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;text-align:center}.hint{color:var(--hint)}.small{font-size:13px}.center{text-align:center}.row{display:flex;gap:8px;flex-wrap:wrap}.title-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.card{background:var(--card);border-radius:14px;padding:14px;margin:12px 0}.btn{border:0;border-radius:10px;padding:11px 16px;background:var(--accent);color:var(--accent-text);font-weight:600;cursor:pointer}.btn.small{padding:7px 12px;font-size:14px}.btn.secondary{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.btn.wide{width:100%;margin-top:10px}.btn:disabled{opacity:.45;cursor:default}.link{background:none;border:0;color:var(--link);cursor:pointer;padding:4px}.field-label{font-weight:600;margin-bottom:8px}.field-hint{color:var(--hint);font-size:13px;margin:6px 0 10px}.field-hint.error,.message.error{color:var(--danger)}.input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--separator);background:var(--bg);color:var(--text);font:inherit}.message{margin:10px 0;text-align:center}.segmented{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.seg{border:1px solid var(--separator);background:transparent;border-radius:10px;padding:10px 0;font-weight:600;cursor:pointer}.seg.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.seg:disabled{opacity:.35}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--separator);cursor:pointer}.toggle-row.disabled{opacity:.4}.switch{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;width:46px;height:28px;border-radius:14px;background:var(--separator);position:relative;cursor:pointer;transition:background .15s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .15s}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(18px)}.avatar{border-radius:50%;object-fit:cover;flex:none}.avatar-letter{display:grid;place-items:center;background:var(--accent);color:var(--accent-text);font-weight:700}.avatar-empty{border:2px dashed var(--separator)}.profile-head{display:flex;gap:16px;align-items:center}.profile-info{min-width:0;display:flex;flex-direction:column;gap:6px}.profile-nick{font-size:20px;font-weight:700;overflow-wrap:anywhere}.table-card.mine{outline:2px solid var(--accent)}.table-head{display:flex;justify-content:space-between;align-items:center}.stake{font-size:22px;font-weight:700}.stake .hint{font-size:13px;font-weight:400}.badge{font-size:12px;font-weight:600;padding:3px 8px;border-radius:8px;background:var(--accent);color:var(--accent-text)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}.chip{font-size:12px;padding:3px 8px;border-radius:8px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.chip.muted{background:var(--separator);color:var(--hint)}.seats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.seat{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.seat-nick{font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stub{text-align:center;padding-top:25vh}.tabbar{flex:none;display:grid;grid-template-columns:repeat(4,1fr);height:calc(var(--tabbar-h) + var(--safe-bottom));padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);background:var(--card);border-top:1px solid var(--separator)}.tab{background:none;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--hint);font-size:11px;cursor:pointer}.tab svg{width:24px;height:24px;fill:currentColor}.tab.active{color:var(--accent)}.toast{position:fixed;left:16px;right:16px;bottom:calc(var(--tabbar-h) + 12px + var(--safe-bottom));max-width:480px;margin:0 auto;padding:12px 16px;border-radius:12px;background:var(--text);color:var(--card);text-align:center;box-shadow:0 4px 16px #0003}.segmented.two{grid-template-columns:repeat(2,1fr)}.badge.muted{background:var(--separator);color:var(--hint)}.seat-badge{font-size:11px;color:var(--hint)}.avatar-bot{background:color-mix(in srgb,var(--accent) 18%,var(--card))}.screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;padding:calc(8px + var(--safe-top)) max(16px,calc(8px + var(--safe-right)),calc((100% - 640px)/2)) calc(12px + var(--safe-bottom)) max(16px,calc(8px + var(--safe-left)),calc((100% - 640px)/2))}.screen .center-screen{position:static;flex:1}.screen-header{display:flex;align-items:center;gap:8px;min-height:40px}.back{font-size:16px;padding:6px 4px}.screen-title{font-weight:700;margin-left:auto}.screen-actions{margin-top:auto}.felt{--felt: #1f6b45;flex:1;min-height:0;margin:8px 0 12px;border-radius:28px;background:radial-gradient(ellipse at center,#2a8a5a 0%,var(--felt) 70%);box-shadow:inset 0 0 0 6px #00000026;color:#fff;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr auto;grid-template-areas:"left right" "center center" "bottom bottom";padding:16px 12px;gap:8px}.felt .hint,.felt .seat-badge{color:#ffffffb3}.felt .avatar-empty{border-color:#fff6}.felt-seat{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.felt-seat.left{grid-area:left}.felt-seat.right{grid-area:right}.felt-seat.bottom{grid-area:bottom}.felt-seat .btn{background:#fff;color:var(--felt)}.felt-center{grid-area:center;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px}.felt-status{font-size:18px;font-weight:700}.felt-hint{font-size:13px;opacity:.75;max-width:260px}.link.danger{color:var(--danger);margin-left:8px}.panel.warn{border:1px solid var(--danger)}.ready-mark{font-size:12px;opacity:.7}.ready-mark.on{opacity:1;font-weight:700;color:#b9f6ca}.game-screen{padding:0;overflow:clip;--felt: #1f6b45;background:radial-gradient(ellipse at 50% 45%,#2a8a5a 0%,var(--felt) 75%);color:#fff}.board{--hand-w: min(68px, 17.5vw);--felt-w: var(--hand-w);position:relative;height:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto auto;grid-template-areas:"left info right" "center center center" "controls controls controls" "me me me" "hand hand hand";gap:4px 6px;padding:calc(6px + var(--safe-top)) calc(8px + var(--safe-right)) calc(4px + var(--safe-bottom)) calc(8px + var(--safe-left));user-select:none;-webkit-user-select:none;touch-action:none}@media(orientation:landscape){.board{--hand-w: min(64px, 15vh);grid-template-columns:minmax(140px,1fr) minmax(0,2.6fr) minmax(140px,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"left info right" "left center right" "left controls right" "me hand hand"}}.board .hint{color:#ffffffb3}.board-info{grid-area:info;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;opacity:.9}@media(orientation:landscape){.board-info{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:4px 8px}}.icon-btn{width:32px;height:32px;border-radius:50%;border:0;background:#ffffff24;color:#fff;font-size:17px;line-height:1;cursor:pointer}.tag{font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px}.tag.gold{background:#f4c430;color:#3b2b00}.tag.dark{background:#222;color:#fff}.zone{position:relative;min-width:0;min-height:0;border-radius:16px;transition:box-shadow .15s,background .15s}.zone.drop-ok{box-shadow:inset 0 0 0 2px #ffffff59;background:#ffffff0d}.zone.drop-over{box-shadow:inset 0 0 0 2px #f4c430;background:#f4c43024}.drop-area{position:absolute;z-index:20;pointer-events:none;border-radius:16px;transition:box-shadow .15s,background .15s}.zone-opp{display:flex;flex-direction:column;gap:6px;padding:4px}.zone-opp.left{grid-area:left;align-items:flex-start}.zone-opp.right{grid-area:right;align-items:flex-end}.zone-opp.right .seat-head,.zone-opp.right .seat-table{flex-direction:row-reverse;text-align:right}.zone-opp.right .seat-marks{justify-content:flex-end}.seat-info{display:flex;flex-direction:column;gap:4px;min-width:0;max-width:100%}.seat-head{position:relative;display:flex;align-items:center;gap:6px;min-width:0}.seat-avatar{flex:none}.seat-text{min-width:0}.seat-nick{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-info .seat-nick{height:17px;line-height:17px}.seat-score{height:21px;font-size:18px;font-weight:800;line-height:21px}.seat-round{height:16px;line-height:16px;font-size:13px;font-weight:700;opacity:.95}.seat-round .bad{color:#ff7b7b}.seat-round .ok{color:#a8f0a8}.seat-marks{display:flex;align-items:center;gap:2px;height:18px}.mark-icon{width:16px;height:16px;flex:none}.mark-icon.fallen{transform:rotate(90deg);opacity:.8}.barrel-on{display:inline-flex;align-items:center;gap:1px;font-size:11px;font-weight:800;color:#f4c430}.seat-trump{flex:none;width:30px;height:30px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 1px 4px #00000059;animation:say-pop .35s cubic-bezier(.3,1.6,.5,1) both}.seat-trump .suit{font-size:20px;line-height:1;color:#161616}.seat-trump .suit.red{color:#d42a2a}.seat-info .avatar{transition:box-shadow .2s}.seat-info.turn .avatar{box-shadow:0 0 0 3px #f4c430,0 0 14px 2px #f4c43099}.seat-table{display:flex;align-items:center;gap:8px}.mini{font-size:11px;opacity:.8}.mini.bad{color:var(--danger);opacity:1}.seat-avatar{position:relative}.balloon{position:absolute;z-index:25;top:calc(100% + 9px);left:-4px;background:#fff;color:#1b1b1b;font-size:15px;font-weight:800;padding:4px 11px;border-radius:14px;white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px #00000059;transform-origin:20px -8px;animation:say-pop .35s cubic-bezier(.3,1.6,.5,1) both}.balloon:before{content:"";position:absolute;top:-7px;left:16px;border:7px solid transparent;border-top:0;border-bottom-color:#fff}.zone-opp.right .balloon{left:auto;right:-4px;transform-origin:calc(100% - 20px) -8px}.zone-opp.right .balloon:before{left:auto;right:16px}.zone-me .balloon{top:auto;bottom:calc(100% + 9px);transform-origin:20px calc(100% + 8px)}.zone-me .balloon:before{top:auto;bottom:-7px;border:7px solid transparent;border-bottom:0;border-top-color:#fff}@keyframes say-pop{0%{scale:.3;opacity:0}}.opp-cards{display:flex;align-items:center;gap:10px}.zone-opp.right .opp-cards{flex-direction:row-reverse}.backs{display:flex;height:46px}.back-mini{width:32px;height:46px;border-radius:3px;box-shadow:-1px 0 3px #0000004d}.back-mini+.back-mini{margin-left:-23px}.pile{position:relative;width:56px;height:40px;flex:none}.pile-card{position:absolute;left:50%;top:50%;width:22px;height:31px;margin:-15px 0 0 -11px;border-radius:2px;box-shadow:0 1px 2px #0006}.gift{width:calc(var(--felt-w) * .8);height:calc(var(--felt-w) * .8 * 1.423);flex:none;transform-style:preserve-3d;touch-action:none;cursor:grab}.gift.away{visibility:hidden}.card3d{position:relative;width:100%;height:100%;transform-style:preserve-3d}.card3d.down{transform:rotateY(180deg)}.card3d .face{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:4px;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 2px 6px #00000059}.card3d .face.back{transform:rotateY(180deg)}.card3d.flight{position:fixed;z-index:40;pointer-events:none;transform-origin:center}.zone-center{grid-area:center;display:flex;align-items:center;justify-content:center}.center-stack{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.redeal-title{font-size:18px;font-weight:800;color:#f4c430;animation:say-pop .35s cubic-bezier(.3,1.6,.5,1) both}.redeal-cards{display:flex;justify-content:center}.redeal-cards .felt-card+.felt-card{margin-left:6px}.redeal-cards.hand-shown .felt-card+.felt-card{margin-left:calc(var(--felt-w) * -.55)}.redeal-why{font-size:14px;font-weight:700}.card-img{display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.felt-card{width:var(--felt-w);height:calc(var(--felt-w) * 1.423);border-radius:5px;box-shadow:0 2px 6px #00000059}.talon-cards{display:flex;gap:6px;justify-content:center;min-height:calc(var(--felt-w) * 1.423)}.trick{position:relative;width:calc(var(--felt-w) * 3);height:calc(var(--felt-w) * 2.3)}.trick .felt-card{position:absolute;transform:rotate(var(--rot))}.trick .at-bottom{--rot: 0deg;left:calc(50% - var(--felt-w) / 2);bottom:0}.trick .at-left{--rot: -8deg;left:0;top:6%}.trick .at-right{--rot: 8deg;right:0;top:6%}.talon-cards.pickable{cursor:pointer;animation:trick-glow 1.2s ease-in-out infinite}.zone-center.collectable{cursor:pointer}.zone-center.collectable .trick{animation:trick-glow 1.2s ease-in-out infinite}@keyframes trick-glow{50%{filter:drop-shadow(0 0 10px rgb(244 196 48 / .9))}}.suit{font-size:15px}.suit.red{color:#ff6b6b}.zone-controls{grid-area:controls;min-height:48px;display:flex;align-items:center;justify-content:center;min-width:0}.control-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px}.status-line{font-size:13px;opacity:.9;text-align:center}.idle-hint{opacity:0;transition:opacity .4s}.idle-hint.shown{opacity:.9}.board .message{margin:0;font-size:13px}.board .message.error{color:#ffd2d2}.board .btn{padding:9px 14px}.board .btn.small{padding:7px 10px}.board .btn.secondary{background:#ffffff29;color:#fff}.btn.gold{background:#f4c430;color:#3b2b00}.stepper{display:flex;align-items:stretch;gap:6px}.stepper .btn{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}.stepper .btn small{font-size:10px;font-weight:500;opacity:.85}.stepper .step{min-width:46px;padding:6px 8px}.stepper .say{min-width:78px;padding:4px 10px}.stepper .say b{font-size:19px}.zone-me{grid-area:me;padding:0 4px}.zone-me .seat-info{flex-direction:row;align-items:center;gap:10px}@media(orientation:landscape){.zone-me{align-self:end}.zone-me .seat-info{flex-direction:column;align-items:flex-start}}.zone-hand{grid-area:hand}.hand{display:flex;justify-content:center;padding-top:14px;min-height:calc(var(--hand-w) * 1.423 + 14px)}.hand-card{width:var(--hand-w);height:calc(var(--hand-w) * 1.423);border-radius:5px;box-shadow:-1px 1px 4px #00000059;transition:transform .12s;cursor:grab;flex:none;touch-action:none;position:relative}.hand-card+.hand-card{margin-left:min(4px,calc((100% - var(--hand-w) * var(--n)) / (var(--n) - 1)))}.hand-card.playable{transform:translateY(-8px)}.hand-card.from-talon{transform:translateY(-10px)}.hand-card.selected{transform:translateY(-22px);box-shadow:0 0 0 3px #f4c430}.hand-card.away{visibility:hidden}.hand-card.disabled{filter:brightness(.55);cursor:default}.drag-card{position:fixed;z-index:50;border-radius:5px;pointer-events:none;transform:scale(1.1) rotate(-4deg);box-shadow:0 10px 24px #00000073}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;background:#00000073;display:grid;place-items:center;padding:calc(12px + var(--safe-top)) calc(12px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(12px + var(--safe-left))}.overlay.result{z-index:45;animation:fade-in .3s ease .5s both}@keyframes fade-in{0%{opacity:0}}.overlay-card{height:fit-content;max-height:100%;overflow:auto;width:100%;max-width:380px;background:var(--card);color:var(--text);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:8px}.overlay-card .row{flex-wrap:nowrap}.overlay-card .row .btn{flex:1}.overlay-card h2{margin:0;font-size:18px;text-align:center}.panel-text{font-size:14px;text-align:center}.result-line{text-align:center;font-weight:700}.ok{color:#2e9d5b}.bad{color:var(--danger)}.overlay-card.result-card{overflow:hidden}.sheet{flex:0 1 auto;min-height:72px;overflow-y:auto;border-radius:10px;background:var(--bg)}.sheet table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:15px;font-variant-numeric:tabular-nums}.sheet th{position:sticky;top:0;background:var(--bg);font-size:12px;font-weight:600;color:var(--hint);padding:6px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid var(--hint)}.sheet td{padding:4px;text-align:center;white-space:nowrap}.sheet th+th,.sheet td+td{border-left:1px solid rgb(128 128 128 / .3)}.sheet .sheet-round{width:26px;font-size:11px;color:var(--hint)}.sheet .me{font-weight:700}.sheet th.me{color:var(--text)}.sheet td.decl.ok .sheet-score{color:#2e9d5b}.sheet td.decl.bad .sheet-score{color:var(--danger)}.sheet-bid{font-size:10px;color:var(--hint);margin-right:3px;vertical-align:super}.sheet .mark-icon{width:20px;height:20px;vertical-align:-5px}.sheet-bolts{position:relative;display:inline-flex;margin-right:3px}.sheet-bolts.crossed:after{content:"";position:absolute;left:-3px;right:-3px;top:50%;border-top:2px solid var(--danger);transform:rotate(-35deg)}.event{text-align:center;font-size:13px}@keyframes fall-from-bottom{0%{transform:translateY(75vh) rotate(-300deg) scale(2.4)}to{transform:rotate(var(--rot)) scale(1)}}@keyframes fall-from-left{0%{transform:translate(-65vw,-65vh) rotate(-320deg) scale(2.2)}to{transform:rotate(var(--rot)) scale(1)}}@keyframes fall-from-right{0%{transform:translate(65vw,-65vh) rotate(320deg) scale(2.2)}to{transform:rotate(var(--rot)) scale(1)}}.trick .felt-card.fresh-bottom{animation:fall-from-bottom .48s cubic-bezier(.15,.7,.25,1) both}.trick .felt-card.fresh-left{animation:fall-from-left .48s cubic-bezier(.15,.7,.25,1) .16s both}.trick .felt-card.fresh-right{animation:fall-from-right .48s cubic-bezier(.15,.7,.25,1) .16s both}.hand-card.leaving{transform:translateY(170%) rotate(-12deg);opacity:0;transition:transform .15s ease-in,opacity .15s ease-in}@media(prefers-reduced-motion:reduce){.trick .felt-card,.overlay.result,.zone-center.collectable .trick,.talon-cards.pickable,.balloon,.seat-trump{animation:none!important}}.loading{display:flex;flex-direction:column;align-items:center;gap:12px}.progress{width:180px;height:4px;border-radius:2px;background:var(--separator);overflow:hidden}.progress>div{height:100%;background:var(--accent);transition:width .2s}
