.hand{--hand-visible:.36;container-type:inline-size}.hand-row{--hand-card-w:min(6rem, calc(100cqw / (1 + 12 * var(--hand-visible))));--hand-card-h:calc(var(--hand-card-w) * 1.4);--hand-lift:calc(var(--hand-card-h) * .22);--hand-step:min(calc(var(--hand-card-w) * .75), calc((100cqw - var(--hand-card-w)) / max(var(--n) - 1, 1)));--hand-start:calc((100cqw - var(--hand-card-w) - var(--hand-step) * (var(--n) - 1)) / 2);height:calc(var(--hand-card-h) + var(--hand-lift));position:relative}.hand-card{top:var(--hand-lift);width:var(--hand-card-w);touch-action:manipulation;min-height:0;translate:calc(var(--hand-start) + var(--i) * var(--hand-step)) 0;background:0 0;border:0;border-radius:5%/3.57%;padding:0;position:absolute;left:0}.hand-card[aria-pressed=true]{translate:calc(var(--hand-start) + var(--i) * var(--hand-step)) calc(var(--hand-lift) * -1)}.hand-card:focus-visible{z-index:1;outline-offset:2px;outline:3px solid #1d5fd1}.hand-card:disabled{opacity:1;cursor:default}.game-table{--seat-w:5rem;--feedback-line-h:1.25rem;--caption-line-h:1.25rem;--action-h:calc(2.75rem + 2 * var(--feedback-line-h));--card-w:min(6rem, calc(100cqw / (1 + 12 * .36)));--trick-card-w:min(var(--card-w), calc((100cqw - 2 * var(--seat-w)) / 3));--trick-card-h:calc(var(--trick-card-w) * 1.4);box-sizing:border-box;width:min(100%,32rem);height:100dvh;padding-top:max(.5rem, env(safe-area-inset-top));padding-right:max(.5rem, env(safe-area-inset-right));padding-bottom:max(.5rem, env(safe-area-inset-bottom));padding-left:max(.5rem, env(safe-area-inset-left));flex-direction:column;margin:0 auto;display:flex;container-type:inline-size}.table-surface{background:#dfe9e1;border:1px solid #c3d4c8;border-radius:1.5rem;flex-direction:column;flex:1;min-height:0;padding:.25rem 0;display:flex}.table-middle{grid-template-columns:var(--seat-w) minmax(0, 1fr) var(--seat-w);flex:1;align-items:center;min-height:0;display:grid}.seat{box-sizing:border-box;width:var(--seat-w);border-radius:.5rem;flex-direction:column;place-self:center;align-items:center;gap:.125rem;padding:.375rem;font-size:.875rem;line-height:1.25rem;display:flex;position:relative}.seat-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.seat-ring{border-radius:inherit;pointer-events:none;border:3px solid #0b4f49;position:absolute;inset:0}.seat-cards{align-items:center;gap:.375rem;display:flex}.seat-back{width:2rem}.seat-count{font-variant-numeric:tabular-nums;min-width:1.25rem;font-size:1.25rem;font-weight:700;line-height:1.5rem}.seat-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.seat-badges{flex-direction:column;align-items:center;gap:.125rem;height:4.125rem;font-size:.75rem;display:flex}.badge-state{color:#4a5f5b;white-space:nowrap;border:1px solid #4a5f5b;border-radius:.75rem;align-items:center;gap:.25rem;padding:0 .375rem;font-weight:700;line-height:1.125rem;display:inline-flex}.badge-turn{color:#fff;background:#0b4f49;border-color:#0b4f49}.badge-offline{border-style:dashed}.badge-ready{color:#0b4f49;border-color:#0b4f49}.you-strip{justify-content:center;align-items:center;gap:.75rem;height:2rem;font-size:.75rem;display:flex}.you-label{margin:-.25rem -.375rem;padding:.25rem .375rem;font-size:1rem;font-weight:700;position:relative}.trick-area{min-width:0;height:calc(var(--trick-card-h) + .25rem + 2 * var(--caption-line-h));flex-direction:column;justify-content:center;align-items:center;gap:.25rem;display:flex;position:relative}.trick-stage{height:var(--trick-card-h);flex:none;justify-content:center;display:flex;position:relative}.trick-exit{pointer-events:none;justify-content:center;display:flex;position:absolute;inset:0}.trick-cards,.trick-placeholder{height:var(--trick-card-h);flex:none;justify-content:center;display:flex}.trick-card{z-index:1;width:var(--trick-card-w);flex:none;position:relative}.trick-card+.trick-card{margin-left:calc(var(--trick-card-w) * -.5)}.trick-placeholder{box-sizing:border-box;width:var(--trick-card-w);border:2px dashed #172a2740;border-radius:5%/3.57%}.trick-result{color:#0b4f49;width:100%;font-size:1.25rem;font-weight:700;line-height:1.5rem;position:absolute;bottom:calc(100% + .25rem)}.trick-result-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:0;position:absolute;overflow:hidden}.trick-result-visible{justify-content:center;display:flex}.trick-result-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.trick-result-verb{white-space:pre;flex:none}.trick-caption{box-sizing:border-box;width:100%;height:calc(2 * var(--caption-line-h));font-size:.875rem;line-height:var(--caption-line-h);text-align:center;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.table-actions{min-height:var(--action-h);flex-direction:column;flex:none;display:flex}.table-actions .reconnect-strip{min-height:calc(2 * var(--feedback-line-h));text-align:center;background:0 0;border:0;flex:none;justify-content:center;align-items:center;gap:0;padding:0}.table-actions .reconnect-strip p{font-size:.875rem;line-height:var(--feedback-line-h)}.action-feedback{box-sizing:border-box;height:calc(2 * var(--feedback-line-h));font-size:.875rem;line-height:var(--feedback-line-h);color:#4a5f5b;flex:none;justify-content:center;align-items:flex-start;gap:.375rem;margin:0;padding:0 .25rem;display:flex;overflow:hidden}.action-feedback[data-group=not_allowed]{color:#a4262c}.action-feedback[data-group=out_of_date],.action-feedback[data-group=not_sent]{color:#7a4a00}.action-feedback svg{margin-top:calc((var(--feedback-line-h) - 12px) / 2);flex:none}.action-feedback-text{text-align:center;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;display:-webkit-box;overflow:hidden}.action-row{flex:none;justify-content:center;gap:.75rem;height:2.75rem;display:flex}.action-row button{box-sizing:border-box;white-space:nowrap;touch-action:manipulation;justify-content:center;align-items:center;gap:.375rem;width:min(9rem,50% - .375rem);height:2.75rem;padding:0 .5rem;display:inline-flex}.action-row button.rematch{width:min(18.75rem,100%)}.action-row button:disabled{color:#4a5f5b;opacity:1;background:0 0;border-style:dashed}.action-row button.ready:disabled{color:#0b4f49;border-style:solid}:root{color:#172a27;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f6f1;font-family:system-ui,sans-serif}body{min-width:280px;min-height:100dvh;margin:0}.app-shell{box-sizing:border-box;width:min(100%,36rem);min-height:100dvh;padding-top:max(1rem, env(safe-area-inset-top));padding-right:max(1.5rem, env(safe-area-inset-right));padding-bottom:max(1rem, env(safe-area-inset-bottom));padding-left:max(1.5rem, env(safe-area-inset-left));flex-direction:column;gap:1.5rem;margin:0 auto;display:flex}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;display:flex}.app-status{margin:0;font-size:1rem}main{flex:1}h1{margin:0;font-size:clamp(1.5rem,6vw,2.25rem)}p{font-size:1.125rem}.panel{flex-direction:column;gap:1rem;display:flex}.panel h2{margin:0;font-size:1.375rem}.form-fields{border:0;flex-direction:column;gap:1rem;min-width:0;margin:0;padding:0;display:flex}.form-fields legend{margin-bottom:1rem;padding:0;font-size:1.375rem;font-weight:700}.field{flex-direction:column;gap:.375rem;font-size:1rem;font-weight:600;display:flex}.field input{box-sizing:border-box;width:100%;min-height:2.75rem;font:inherit;color:inherit;background:#fff;border:1px solid #5d716d;border-radius:.5rem;padding:.5rem .75rem;font-weight:400}.field input[aria-invalid=true]{border-color:#a4262c}.actions{flex-wrap:wrap;gap:.75rem;display:flex}button{min-height:2.75rem;font:inherit;color:#fff;cursor:pointer;background:#0b4f49;border:1px solid #0b4f49;border-radius:.5rem;padding:.5rem 1.25rem;font-weight:600}button.secondary{color:#0b4f49;background:0 0}button:disabled{opacity:.6;cursor:not-allowed}.field-error,.form-error{color:#a4262c;margin:0;font-size:1rem}.note{color:#4a5f5b;margin:0;font-size:1rem}.room-code{letter-spacing:.1em;font-family:ui-monospace,monospace}.panel h3{margin:0;font-size:1.125rem}.members{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.members li{border:1px solid #5d716d;border-radius:.5rem;padding:.5rem .75rem;font-size:1rem}.members li.note{border-style:dashed}.member-name{font-weight:600}.badge{color:#0b4f49;font-weight:700}.member-state{color:#4a5f5b;display:block}.checkbox{align-items:center;gap:.5rem;min-height:2.75rem;font-size:1rem;font-weight:600;display:flex}.checkbox input{width:1.25rem;height:1.25rem}.playing-card{box-sizing:border-box;aspect-ratio:5/7;border-radius:5%/3.57%;width:100%;position:relative}.playing-card img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.playing-card-selected{outline-offset:-2px;outline:2px solid #0b4f49}.app-shell:has(.game-table){gap:0;width:100%;padding:0}.app-shell:has(.game-table) .app-header{display:none}.reconnect-strip{box-sizing:border-box;color:#7a4a00;background:#fff;border:1px solid #7a4a00;border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.5rem .75rem;display:flex}.reconnect-strip p{margin:0;font-size:1rem;font-weight:600}
