:root{--felt:#12557a;--felt-dark:#072a3d;--rail:#041a28;--ink:#f1f6fa;--muted:#9fb6c6;--gold:#e8c66a;--mint:#35d5e0;--chip:#b8353c;--up:#4ecf8f;--down:#ff7b6b;--danger:#e2585c;--card-w:max(40px, min(clamp(52px, 10vw, 96px), 19vh));--card-h:calc(var(--card-w) * 1.45);--hand-sink:.38;--mini-w:var(--card-w);--mini-h:var(--card-h);--wall-peek:calc(var(--mini-h) * -.55);--deck-side:calc(var(--mini-h) * .45);--hand-step:min(calc(var(--card-w) * .55), calc((100vw - 20px - var(--card-w)) / 15));--deck-step:clamp(4px, 2vh, calc(var(--mini-w) * .4));--avatar:clamp(22px, 4.4vw, 32px);--floor-w:calc(var(--card-w) * .52);--floor-h:calc(var(--floor-w) * 1.42);--radius:8px;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--rail);color:var(--ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;font:500 15px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{position:fixed;inset:0;overflow:hidden}.btn{appearance:none;color:var(--ink);font:inherit;border-radius:var(--radius);cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;padding:8px 16px;font-weight:700}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:default}.btn--pill{border-radius:999px}.btn--big{padding:12px 26px;font-size:16px}.btn--primary{background:var(--gold);color:#21170a;border-color:#0000}.btn--danger{background:var(--danger);color:#fff;border-color:#0000}.actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.tag{letter-spacing:.04em;text-transform:uppercase;border-radius:5px;padding:1px 5px;font-size:9px;font-weight:800}.tag--bot{color:var(--gold);background:#e8c66a38}.tag--off{color:var(--down);background:#ff7b6b38}.toast{left:50%;bottom:calc(14px + var(--safe-b));background:var(--danger);color:#fff;z-index:200;pointer-events:none;border-radius:999px;padding:8px 16px;font-weight:700;position:fixed;transform:translate(-50%)}.logo{display:inline-flex}.logo__card{background:#fbfdfa;border-radius:7px;place-items:center;width:40px;height:56px;font-size:26px;font-weight:900;display:grid;box-shadow:0 5px 14px #00000073}.logo__card--3{color:#2f9e6b;transform:rotate(-12deg)}.logo__card--5{color:#1f6fb8;margin-left:-15px}.logo__card--8{color:#d2452f;margin-left:-15px;transform:rotate(12deg)}.logo--small .logo__card{width:24px;height:33px;font-size:15px}.home,.gate{text-align:center;background:radial-gradient(ellipse at 50% 8%, #1a5f89 0%, #0a3a52 55%, var(--rail) 100%);flex-direction:column;justify-content:center;align-items:center;gap:14px;height:100%;padding:20px;display:flex;overflow-y:auto}.home h1{letter-spacing:.02em;margin:2px 0 0;font-size:24px}.gate p{margin:0;font-weight:700}.gate__sub{color:var(--muted);font-size:13px;font-weight:500!important}.countdown-layer{z-index:35;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.countdown-layer>*{pointer-events:auto}.countdown{border:2px solid var(--gold);width:76px;height:76px;color:var(--gold);background:#ffffff12;border-radius:50%;place-items:center;font:900 2.6rem/1 system-ui,sans-serif;display:grid}.field{flex-direction:column;align-items:center;gap:4px;display:flex}.field span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.field input{border-radius:var(--radius);color:var(--ink);font:inherit;text-align:center;background:#ffffff14;border:1px solid #ffffff29;width:210px;padding:9px 14px;font-weight:700}.field input:focus{border-color:var(--gold);outline:none}.login__form{flex-direction:column;align-items:center;gap:12px;display:flex}.login__error{color:var(--down);min-height:16px;margin:0;font-size:12px;font-weight:700}.tables{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.table-card{width:150px;color:var(--ink);font:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff24;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:12px 10px;display:flex}.table-card:active{transform:scale(.98)}.table-card__name{letter-spacing:.12em;color:var(--gold);font-size:12px;font-weight:900}.table-card__seats{gap:4px;display:flex}.table-card__seat{width:22px;height:22px;color:var(--muted);background:#ffffff1a;border:1px dashed #ffffff3d;border-radius:50%;place-items:center;font-size:10px;font-weight:800;display:grid}.table-card__seat.is-full{color:var(--ink);background:linear-gradient(145deg,#2c7a8a,#14453f);border-style:solid;border-color:#0000}.table-card__count{color:var(--muted);font-size:11px}.table{width:100%;height:100%}.board{width:100%;height:100%;padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);background:radial-gradient(ellipse at 50% 46%, var(--felt) 0%, #0c3f5c 55%, var(--felt-dark) 100%);flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 90px #00000073}.board__play{z-index:1;position:absolute;inset:0}.board__bottom{z-index:5;margin-top:auto;position:relative}.board__self{z-index:1;flex-direction:column;align-items:center;gap:0;margin-bottom:-6px;padding:0 8px;display:flex;position:relative}.board__self:has(.chat-pop){z-index:8}.board__quit{z-index:6;width:40px;height:40px;color:var(--muted);cursor:pointer;background:#04141e99;border:1px solid #ffffff29;border-radius:50%;font-size:1rem;position:absolute;top:8px;right:8px}.hud{z-index:6;cursor:pointer;border-radius:var(--radius);border:none;flex-direction:column;gap:2px;padding:0;line-height:1;display:flex;position:absolute;top:8px;left:8px;overflow:hidden;box-shadow:0 3px 10px #0006}.hud:active{transform:scale(.97)}.hud__row{display:flex}.hud__rank{background:var(--chip);color:#fff;padding:6px 9px;font:900 .95rem/1 system-ui,sans-serif}.hud__deal{color:#123;background:#f4f7fa;flex-direction:column;align-items:center;gap:1px;padding:4px 9px;display:flex}.hud__deal b{font:900 .82rem/1 system-ui,sans-serif}.hud__deal em{letter-spacing:.1em;opacity:.65;font:700 .5rem/1 system-ui,sans-serif}.hud__set{background:var(--gold);color:#1b2b12;letter-spacing:.08em;text-align:center;padding:4px 9px;font:800 .62rem/1.4 system-ui,sans-serif}.trump-badge{z-index:6;background:#04141e99;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:5px;min-width:40px;height:40px;padding:0 10px;display:flex;position:absolute;top:8px;right:56px}.trump-badge b{color:var(--muted);font-size:1.3rem;line-height:1}.trump-badge em{letter-spacing:.1em;color:var(--muted);font:800 .5rem/1 system-ui,sans-serif}.trump-badge--H b,.trump-badge--D b{color:#ff6a5e}.trump-badge--S b,.trump-badge--C b{color:#fbfdfa}.floor{z-index:4;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;top:6px;left:50%;transform:translate(-50%)}.floor__cards{filter:drop-shadow(0 4px 8px #0006);display:flex}.floor__cards>.card{width:var(--floor-w);height:var(--floor-h);margin-left:calc(var(--floor-w) * -.45);box-shadow:none;border-radius:4px}.floor__cards>.card:first-child{margin-left:0}.floor__label{letter-spacing:.14em;color:var(--muted);font:800 .5rem/1 system-ui,sans-serif}.seat{z-index:4;position:absolute}.seat__cards{filter:drop-shadow(0 6px 12px #00000059);display:flex;position:absolute}.seat--left{padding-left:calc(var(--deck-side) + 10px);top:50%;left:0;transform:translateY(-50%)}.seat--left .seat__cards{left:var(--wall-peek);top:50%;transform:translateY(-50%)}.seat--right{padding-right:calc(var(--deck-side) + 10px);top:50%;right:0;transform:translateY(-50%)}.seat--right .seat__cards{right:var(--wall-peek);top:50%;transform:translateY(-50%)}.seat--bottom{padding:0;position:static;transform:none}.seat--left .seat__cards,.seat--right .seat__cards{flex-direction:column;align-items:center}.seat--left .seat__cards>*,.seat--right .seat__cards>*{margin-top:calc(var(--deck-step) - var(--mini-w))}.seat--left .seat__cards>:first-child,.seat--right .seat__cards>:first-child{margin-top:0}.seat__plate{background:#041620d6;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 3px;transition:box-shadow .2s,border-color .2s;display:flex;position:relative;box-shadow:0 4px 14px #00000059}.seat--left .seat__plate,.seat--right .seat__plate{border-radius:16px;flex-direction:column;gap:3px;padding:6px 9px}.seat--left .seat__info,.seat--right .seat__info{align-items:center}.seat--left .seat__name,.seat--right .seat__name{max-width:9ch}.seat--active .seat__plate{border-color:#35d5e0bf;box-shadow:0 0 0 2px #35d5e038,0 0 26px #35d5e038}.seat__tally{text-align:center;background:var(--chip);color:#fff;border-radius:999px;flex:none;min-width:34px;padding:4px 7px;font:900 .78rem/1 system-ui,sans-serif}.seat__tally i{opacity:.72;font-size:.68rem;font-style:normal}.seat__tally.is-done{box-shadow:inset 0 0 0 2px #ffffff9e}.seat__avatar-slot{flex:none;display:inline-flex;position:relative}.seat__avatar{width:var(--avatar);height:var(--avatar);font:800 calc(var(--avatar) * .42) / 1 system-ui, sans-serif;color:var(--ink);background:linear-gradient(145deg,#2c6a8a,#143a4f);border:none;border-radius:50%;flex:none;place-items:center;padding:0;display:grid;position:relative;box-shadow:inset 0 0 0 2px #ffffff24}.seat__avatar--tap{cursor:pointer}.seat__avatar--tap:active{transform:scale(.94)}.seat__avatar.is-counting{background:radial-gradient(circle,#0a2a36 55%,#143a4f 100%)}.seat__avatar .ring{width:auto;height:auto;position:absolute;inset:0;overflow:visible}.seat__avatar-hint{opacity:.75;font-size:.55rem;position:absolute;bottom:-2px;right:-2px}.ring__track{fill:none;stroke:#ffffff24;stroke-width:3.5px}.ring__fill{fill:none;stroke:var(--mint);stroke-width:3.5px;stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset .12s linear;transform:rotate(-90deg)}.ring--urgent .ring__fill{stroke:var(--down)}.ring__text{fill:var(--ink);text-anchor:middle;dominant-baseline:central;font:800 17px/1 system-ui,sans-serif}.seat__info{flex-direction:column;gap:2px;min-width:0;display:flex}.seat__name{align-items:center;gap:5px;min-width:0;max-width:12ch;font:800 clamp(.74rem,2.2vw,.92rem)/1.1 system-ui,sans-serif;display:flex}.seat__name-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.seat__score{color:var(--muted);font:700 .68rem/1 system-ui,sans-serif}.seat__score.is-up{color:var(--up)}.seat__score.is-down{color:var(--down)}.badge{background:var(--mint);color:#062028;letter-spacing:.1em;z-index:2;border-radius:999px;padding:4px 9px;font:900 .6rem/1 system-ui,sans-serif;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.bubble-slot{z-index:40;position:absolute}.seat--bottom .bubble-slot{margin-right:10px;top:50%;right:100%;transform:translateY(-50%)}.seat--left .bubble-slot{margin-bottom:10px;bottom:100%;left:0}.seat--right .bubble-slot{margin-bottom:10px;bottom:100%;right:0}.bubble{color:#10202c;white-space:nowrap;background:#fbfdfa;border-radius:12px;padding:6px 10px;font:700 .75rem/1.2 system-ui,sans-serif;box-shadow:0 6px 16px #0006}.card{width:var(--card-w);height:var(--card-h);border-radius:clamp(6px, calc(var(--card-w) * .11), 10px);color:#12241a;cursor:pointer;background:#fbfdfa;border:1px solid #d8dcd6;flex:none;padding:0;position:relative;overflow:hidden;box-shadow:0 3px 9px #0006}.hand>.card,.pile__slot>.card{will-change:transform;backface-visibility:hidden}.card:disabled{cursor:default}.card__index{line-height:.9;font:900 calc(var(--card-w) * .42) / .9 system-ui, sans-serif;flex-direction:column;align-items:center;display:flex;position:absolute;top:4%;left:8%}.card__index i{font-style:normal;font-size:calc(var(--card-w) * .32)}.card__index--flip{inset:auto 8% 4% auto;transform:rotate(180deg)}.card--red{color:#c62d3c}.card--black{color:#17261c}.card--selected{box-shadow:0 10px 22px #0000008c}.card--back{background:repeating-linear-gradient(45deg,#1f5c74 0 6px,#143f52 6px 12px);border-color:#061c28;box-shadow:inset 0 0 0 2px #ffffff12}.card--mini{width:var(--mini-w);height:var(--mini-h);box-shadow:0 1px 3px #00000059}.card--mini-side{width:var(--mini-h);height:var(--mini-w)}.hand-wrap{z-index:2;margin-bottom:calc(var(--card-h) * var(--hand-sink) * -1);position:relative}.hand{min-height:calc(var(--card-h) + 14px);justify-content:center;padding:14px 6px 0;display:flex}.hand>*{margin-left:calc(var(--hand-step) - var(--card-w))}.hand>:first-child{margin-left:0}.hand>.card--group-start{margin-left:calc(var(--hand-step) - var(--card-w) + var(--card-w) * .18)}.pile-layer{z-index:2;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.pile{width:calc(var(--card-w) * 1.78);height:calc(var(--card-h) * 1.22);margin-top:calc(var(--card-h) * -.3);position:relative}.pile__slot{width:var(--card-w);height:var(--card-h);left:calc(50% - var(--card-w) / 2);top:calc(50% - var(--card-h) / 2);position:absolute}.pile__slot--left{margin-left:calc(var(--card-w) * -.38);margin-top:calc(var(--card-h) * -.1)}.pile__slot--right{margin-left:calc(var(--card-w) * .38);margin-top:calc(var(--card-h) * -.1)}.pile__slot--bottom{margin-top:calc(var(--card-h) * .12)}.dialog-slot{z-index:30;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.dialog-slot>*{pointer-events:auto}.phase{text-align:center;background:#051a26f0;border:1px solid #ffffff1f;border-radius:14px;min-width:210px;max-width:min(94vw,520px);padding:9px 14px 11px;box-shadow:0 12px 34px #00000080}.phase--wide{min-width:260px}.phase__head h3{letter-spacing:.16em;color:var(--gold);margin:0;font:900 .7rem/1.2 system-ui,sans-serif}.phase__sub{color:var(--muted);margin-top:3px;font-size:.72rem;display:block}.phase__wait{color:var(--muted);margin:8px 0 0;font-size:.75rem}.suits{justify-content:center;gap:8px;margin-top:10px;display:flex}.suit-btn{cursor:pointer;background:#fbfdfa;border:1px solid #ffffff24;border-radius:10px;flex-direction:column;align-items:center;gap:1px;width:56px;padding:6px 0 5px;display:flex}.suit-btn b{font-size:1.6rem;line-height:1}.suit-btn em{color:#52616e;font:700 .62rem/1 system-ui,sans-serif}.suit-btn--red b{color:#c62d3c}.suit-btn--black b{color:#17261c}.suit-btn:active{transform:scale(.96)}.slots{flex-wrap:wrap;justify-content:center;align-items:center;gap:7px;margin-top:9px;display:flex}.slots__item{flex-direction:column;align-items:center;gap:2px;display:flex}.slots__to{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:56px;font:700 .55rem/1 system-ui,sans-serif;overflow:hidden}.plan{color:var(--muted);flex-direction:column;gap:3px;margin:8px 0 0;padding:0;font-size:.72rem;list-style:none;display:flex}.plan .is-me{color:var(--ink)}.recap{border-top:1px solid #ffffff1f;flex-direction:column;gap:4px;margin-top:8px;padding-top:7px;display:flex}.recap__row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:0;font-size:.72rem;display:flex}.recap__row em{color:var(--ink);font-style:normal;font-weight:800}.recap__side{align-items:center;gap:3px;display:flex}.recap__label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.55rem}.chip-card{background:#fbfdfa;border-radius:4px;align-items:center;gap:1px;padding:1px 4px;font:900 .75rem/1.35 system-ui,sans-serif;display:inline-flex}.chip-card i{font-style:normal}.chip-card--red{color:#c62d3c}.chip-card--black{color:#17261c}.chip-card--big{padding:4px 8px;font-size:1rem}.chip-card--empty{background:#ffffff12;border:1px dashed #ffffff3d;min-width:30px;min-height:26px}.trump-flash{background:#051a26f0;border:1px solid #ffffff1f;border-radius:16px;align-items:center;gap:10px;padding:10px 20px;display:flex;box-shadow:0 12px 34px #00000080}.trump-flash b{font-size:2.4rem;line-height:1}.trump-flash--red b{color:#ff5f52}.trump-flash--black b{color:#fbfdfa}.trump-flash span{flex-direction:column;font:800 .85rem/1.3 system-ui,sans-serif;display:flex}.trump-flash em{color:var(--gold);font-size:.72rem;font-style:normal;font-weight:700}.scrim{z-index:120;background:#030c13b8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:#051a26f5;border:1px solid #ffffff1f;border-radius:16px;flex-direction:column;gap:12px;min-width:250px;max-width:min(96vw,720px);max-height:92vh;padding:14px 16px 16px;display:flex;overflow:auto;box-shadow:0 18px 48px #0009}.dialog--wide{width:min(96vw,720px)}.dialog__head{text-align:center}.dialog__head h3{letter-spacing:.16em;color:var(--gold);margin:0;font:900 .75rem/1.2 system-ui,sans-serif}.dialog__sub{color:var(--muted);margin-top:2px;font-size:.72rem;display:block}.board-table{border-collapse:collapse;width:100%;font-size:.78rem}.board-table td,.board-table th{text-align:left;border-bottom:1px solid #ffffff1a;padding:5px 6px}.board-table .is-me{background:#e8c66a17}.board-table__name{font-weight:700}.board-table__tally,.board-table__gain,.board-table__score{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}.board-table__gain.is-up,.sheet__cell.is-up{color:var(--up)}.board-table__gain.is-down,.sheet__cell.is-down{color:var(--down)}.board-table__score{color:var(--gold)}.place{background:#ffffff1f;border-radius:50%;place-items:center;width:18px;height:18px;margin-right:6px;font:900 .62rem/1 system-ui,sans-serif;display:inline-grid}.place--1{background:var(--gold);color:#21170a}.sheet{overflow-x:auto}.board-table--sheet th,.board-table--sheet td{white-space:nowrap}.sheet__name{z-index:1;background:#062131;position:sticky;left:0}.sheet__total{text-align:right;color:var(--gold);background:#062131;font-weight:900;position:sticky;right:0}.sheet__set,.sheet__deal{text-align:center;color:var(--muted);font-size:.62rem;font-weight:700}.sheet__cell{text-align:center;font-variant-numeric:tabular-nums;font-weight:800}.sheet__deal.is-now{color:var(--gold)}.is-set-start{border-left:1px solid #ffffff24}.chat-slot{margin-top:calc(var(--avatar) * -1.1);z-index:60;position:absolute;top:100%;left:calc(50% + 10px)}.chat-pop{background:#051a26f5;border:1px solid #ffffff1f;border-radius:12px;width:min(210px,100vw - 60px);max-height:min(190px,34vh);padding:4px;overflow-y:auto;box-shadow:0 12px 32px #0000008c}.chat-pop__item{text-align:left;width:100%;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:7px 9px;font-size:.78rem;display:block}.chat-pop__item:active{background:#e8c66a38}.rotate-hint{display:none}@media (pointer:coarse) and (orientation:portrait){.rotate-hint{z-index:300;background:var(--rail);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:fixed;inset:0}.rotate-hint p{letter-spacing:.04em;margin:0;font-weight:800}}
