:root{--bg: #f3f6fa;--bg-accent: #e8eef8;--surface: #ffffff;--ink: #1e2a3a;--muted: #5a6b7d;--line: #c5d3e5;--brand: #2f6fed;--brand-dark: #1f56c7;--brand-soft: #dce8fb;--shadow: 0 8px 28px rgba(30, 58, 110, .08);--radius: 12px;--font: "DM Sans", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#d9e6ff 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#eef3fb 0%,transparent 50%),var(--bg)}button,input,select{font:inherit}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:2.5rem 1.25rem 2rem}.page--create{justify-content:flex-start;gap:2rem}.page--join{justify-content:center;background:#2a3444}.page--game{padding-bottom:8rem}.brand{text-align:center}.brand__name{display:block;font-size:clamp(2rem,4vw,2.75rem);font-weight:700;letter-spacing:-.03em;color:var(--ink)}.brand__tag{margin:.4rem 0 0;color:var(--muted)}.panel{width:min(440px,100%);background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1rem}.panel--join{width:min(420px,100%)}.panel__title{margin:0;font-size:1.35rem;font-weight:700;color:#1a2740}.panel__subtitle{margin:-.4rem 0 0;color:var(--muted)}.field{display:flex;flex-direction:column;gap:.4rem}.field__label{font-size:.9rem;color:var(--muted);font-weight:500}.field__input{border:1px solid var(--line);border-radius:10px;padding:.75rem .9rem;background:#fff;color:var(--ink);outline:none}.field__input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2f6fed26}.field__hint{margin:0;font-size:.8rem;color:var(--muted);line-height:1.4}.advanced{display:flex;flex-direction:column;gap:1rem;padding-top:.25rem}.toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.35rem 0}.toggle__title{display:block;font-weight:600;color:var(--ink)}.toggle__desc{display:block;font-size:.85rem;color:var(--muted);margin-top:.15rem}.toggle input[type=checkbox]{appearance:none;width:44px;height:26px;border-radius:999px;background:#c3ccd8;position:relative;cursor:pointer;flex-shrink:0;transition:background .2s ease}.toggle input[type=checkbox]:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s ease}.toggle input[type=checkbox]:checked{background:var(--brand)}.toggle input[type=checkbox]:checked:after{transform:translate(18px)}.btn{border:none;border-radius:10px;padding:.85rem 1.1rem;font-weight:700;cursor:pointer;transition:background .15s ease,transform .1s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--brand);color:#fff}.btn--primary:hover:not(:disabled){background:var(--brand-dark)}.btn--block{width:100%}.link-btn{border:none;background:none;color:var(--brand);font-weight:600;cursor:pointer;padding:0}.link-btn:hover{text-decoration:underline}.link-btn--block{align-self:flex-start}.form-error{margin:0;color:#b42318;font-size:.9rem}.join-overlay{width:100%;display:flex;justify-content:center}.game-header{width:min(960px,100%);text-align:center;margin-bottom:1.5rem}.game-header__mood{margin:0;color:var(--muted);font-size:1.05rem}.game-header__title{margin:.75rem 0 0;font-size:1.1rem;font-weight:600;color:var(--ink)}.game-header__conn{margin:.4rem 0 0;color:var(--muted);font-size:.85rem}.game-table{width:min(960px,100%);display:flex;flex-direction:column;align-items:center;gap:1.5rem;flex:1}.game-table__board{width:min(520px,100%);min-height:160px;background:linear-gradient(180deg,#e7eefc,#d7e4f8);border-radius:24px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 8px #2f6fed14;padding:1.5rem;animation:board-in .45s ease both}@keyframes board-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.game-table__prompt p{margin:0;color:#3d5678;font-weight:600;font-size:1.15rem}.game-table__countdown span{font-size:3rem;font-weight:700;color:var(--brand);animation:pulse .9s ease infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.game-table__average-block{margin:0 0 .85rem;text-align:center}.game-table__average{margin:0;color:var(--ink)}.game-table__exact{color:var(--muted);font-weight:500;font-size:.9rem}.game-table__suggestion{margin:.45rem 0 0;color:var(--ink);font-size:.95rem}.game-table__suggestion-hint{display:inline;color:var(--muted);font-weight:400;font-size:.85rem}.game-table__players{display:flex;flex-wrap:wrap;justify-content:center;gap:1.25rem}.player-seat{display:flex;flex-direction:column;align-items:center;gap:.45rem;animation:seat-in .35s ease both}@keyframes seat-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.player-seat.is-away{opacity:.45}.player-seat__card{width:52px;height:72px;border-radius:8px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--brand);overflow:hidden}.player-seat__card.is-voted{background:repeating-linear-gradient(-45deg,var(--brand-soft),var(--brand-soft) 4px,#fff 4px,#fff 8px);border-color:var(--brand)}.player-seat__card.is-open{background:#fff;box-shadow:var(--shadow)}.player-seat__spectator{font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.player-seat__name{font-size:.85rem;color:var(--muted);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-bar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;flex-wrap:wrap;gap:.55rem;padding:1rem 1rem 1.25rem;background:linear-gradient(180deg,transparent,rgba(243,246,250,.95) 30%,var(--bg))}.poker-card{position:relative;width:54px;height:76px;border-radius:10px;border:1px solid #9eb6d8;background:#fff;color:#2a4a78;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #1e3a6e14;transition:transform .15s ease,background .15s ease,color .15s ease}.poker-card:hover:not(:disabled){transform:translateY(-6px)}.poker-card:disabled{opacity:.55;cursor:not-allowed}.poker-card.is-selected{background:var(--brand);border-color:var(--brand);color:#fff;transform:translateY(-10px)}.poker-card__value{font-weight:700;font-size:1.05rem;z-index:1}.poker-card__corner{position:absolute;width:8px;height:8px;border:1.5px solid #a8c0e0;border-radius:50%;top:6px;left:6px;opacity:.7}.poker-card__corner--tr{left:auto;right:6px}.poker-card__corner--bl{top:auto;bottom:6px}.poker-card__corner--br{inset:auto 6px 6px auto}.poker-card.is-selected .poker-card__corner{border-color:#ffffffb3}@media(max-width:640px){.poker-card{width:46px;height:66px}.deck-bar{gap:.35rem;padding-bottom:.85rem}}
