:root{--felt: #0b3d2e;--felt-dark: #072a20;--felt-light: #125340;--gold: #e3b341;--ink: #f4f1ea;--muted: rgba(244, 241, 234, .62);--line: rgba(244, 241, 234, .16);--card-face: #fbf9f4;--red: #c62828;--black: #1a1a1a;--radius: 14px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:radial-gradient(120% 80% at 50% 0%,var(--felt-light),var(--felt) 45%,var(--felt-dark));background-attachment:fixed;color:var(--ink);font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.45;overscroll-behavior:none}.app{min-height:100%;display:flex;flex-direction:column}.screen{flex:1;width:100%;max-width:560px;margin:0 auto;padding:calc(16px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));display:flex;flex-direction:column;gap:14px}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em}h1{font-size:2rem}h2{font-size:1.4rem}h3{font-size:1.05rem}.tagline{margin:0;color:var(--muted);font-size:.95rem}.hint{margin:0;color:var(--muted);font-size:.85rem}button{font:inherit;color:inherit;border:none;background:none;cursor:pointer;touch-action:manipulation}.primary,.ghost{min-height:50px;padding:0 20px;border-radius:var(--radius);font-weight:700;font-size:1rem;transition:transform .12s ease,opacity .12s ease}.primary{background:linear-gradient(180deg,var(--gold),#c99a2e);color:#241a02;box-shadow:0 6px 18px #0000004d}.ghost{background:#ffffff14;border:1px solid var(--line)}.primary:active,.ghost:active{transform:scale(.97)}.primary:disabled{opacity:.45;box-shadow:none}.button-row{display:grid;grid-template-columns:1fr 1.6fr;gap:10px}.field{display:flex;flex-direction:column;gap:6px}.field>span,.field-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}input{min-height:50px;padding:0 14px;font:inherit;font-size:1rem;color:var(--ink);background:#00000040;border:1px solid var(--line);border-radius:var(--radius)}input:focus{outline:2px solid var(--gold);outline-offset:1px}.code-input{text-align:center;font-size:1.7rem;font-weight:700;letter-spacing:.35em;text-indent:.35em}.panel{display:flex;flex-direction:column;gap:12px;padding:16px;background:#0003;border:1px solid var(--line);border-radius:18px}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#00000040;border-radius:var(--radius)}.tabs button{min-height:42px;border-radius:10px;color:var(--muted);font-weight:600}.tabs button.active{background:#ffffff1f;color:var(--ink)}.home-header{text-align:center;display:flex;flex-direction:column;gap:6px;align-items:center;padding-top:8px}.logo-card{display:grid;place-items:center;width:62px;height:84px;background:var(--card-face);color:var(--black);font-size:1.8rem;font-weight:700;border-radius:10px;box-shadow:0 10px 26px #0006;transform:rotate(-6deg)}.variant-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.variant{display:flex;flex-direction:column;gap:2px;padding:12px;text-align:left;background:#ffffff0f;border:1px solid var(--line);border-radius:var(--radius);font-size:.82rem;color:var(--muted)}.variant strong{font-size:.98rem;color:var(--ink)}.variant.active{border-color:var(--gold);background:#e3b34124}.variant-meta{font-size:.74rem}.code-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:18px;background:#00000047;border:1px dashed var(--gold);border-radius:18px}.code-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.code-value{font-size:2.6rem;font-weight:800;letter-spacing:.22em;text-indent:.22em;color:var(--gold)}.invite-url{text-align:center;word-break:break-all;font-size:.76rem;user-select:all;-webkit-user-select:all}.invite-url.highlight{padding:8px 10px;border-radius:10px;color:var(--ink);background:#e3b34124;border:1px solid rgba(227,179,65,.4)}.seat-list{display:flex;flex-direction:column;gap:8px}.seat-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);background:#ffffff0f;border:1px solid var(--line)}.seat-row.empty{border-style:dashed;color:var(--muted)}.seat-avatar{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#e3b34133;color:var(--gold);font-weight:700}.seat-name{flex:1;font-weight:600}.chip{padding:2px 8px;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:#ffffff1f;color:var(--muted)}.chip-you,.chip-removable{background:#e3b34138;color:var(--gold)}.card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--card-face);border-radius:9px;box-shadow:0 3px 10px #00000059;font-weight:700;line-height:1;flex:none;transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease}.card-red{color:var(--red)}.card-black{color:var(--black)}.card-sm{width:38px;height:54px;font-size:.82rem}.card-md{width:50px;height:70px;font-size:1rem}.card-lg{width:var(--card-w, 58px);height:84px;font-size:1.1rem}.card-face{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.card-suit{font-size:1.25em}.card-corner{position:absolute;top:3px;left:3px;display:flex;flex-direction:column;align-items:center;line-height:.95;font-weight:800}.card-corner-rank{font-size:.68rem;letter-spacing:-.05em}.card-corner-suit{font-size:.64rem}.card-sm .card-corner,.card-md .card-corner{display:none}.card-points{position:absolute;top:3px;right:4px;font-size:.58rem;font-weight:800;color:#0000006b}.card.is-kali-tidi{box-shadow:0 0 0 2px var(--gold),0 3px 10px #0006}.card.is-trump:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:9px;box-shadow:inset 0 0 0 2px #e3b341d9}.card.is-disabled{opacity:.34;filter:saturate(.4)}.card.is-selected{transform:translateY(-8px);box-shadow:0 0 0 2px var(--gold),0 8px 18px #00000073}.card.is-tappable:not(.is-disabled):active{transform:translateY(-6px) scale(1.04)}.card-back{background:repeating-linear-gradient(45deg,#1d4f8b,#1d4f8b 5px,#16407a 5px,#16407a 10px)}.card-row{display:flex;flex-wrap:wrap;gap:8px}.chosen-row{display:flex;flex-wrap:wrap;gap:6px}.status-bar{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.status-bar::-webkit-scrollbar{display:none}.status-chip{flex:none;padding:5px 10px;border-radius:999px;font-size:.76rem;font-weight:600;background:#00000047;border:1px solid var(--line);white-space:nowrap}.status-chip.trump{border-color:var(--gold);color:var(--gold)}.seats{display:grid;gap:6px;grid-template-columns:1fr}.seats[data-count="5"],.seats[data-count="6"],.seats[data-count="7"]{grid-template-columns:1fr 1fr}.seat{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:12px;background:#00000038;border:1px solid transparent;min-height:58px}.seat.on-turn{border-color:var(--gold);background:#e3b3411f}.seat.away{opacity:.5}.seat-info{flex:1;min-width:0;display:flex;flex-direction:column}.seat .seat-name{font-size:.86rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat-sub{font-size:.72rem;color:var(--muted)}.seat-card{width:38px;flex:none}.trick{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:8px;min-height:104px;padding:10px;border-radius:18px;background:#0003;border:1px solid var(--line)}.trick.empty{align-items:center;justify-content:center}.trick-play{display:flex;flex-direction:column;align-items:center;gap:3px}.trick-play.won .card{box-shadow:0 0 0 2px var(--gold),0 8px 20px #00000080;transform:translateY(-4px)}.trick-owner{font-size:.68rem;color:var(--muted);max-width:54px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log{display:flex;flex-direction:column;gap:1px;font-size:.76rem;color:var(--muted);text-align:center;min-height:18px}.log span:last-child{color:var(--ink)}.hand-area{margin-top:auto;display:flex;flex-direction:column;gap:8px}.turn-line{margin:0;text-align:center;font-size:.85rem;font-weight:600;color:var(--gold)}.secret{margin:0;padding:8px 10px;border-radius:10px;font-size:.78rem;background:#e3b3411f;border:1px solid rgba(227,179,65,.35)}.hand{--card-w: 58px;display:grid;justify-content:center;align-items:end;padding:26px 6px 10px;overflow:visible}.hand .card{width:var(--card-w)}.hand .card.is-selected{z-index:10;transform:translateY(-18px)}.hand .card.is-armed{box-shadow:0 0 0 3px var(--gold),0 12px 24px #00000080}.hand .card.is-disabled{opacity:.4}.action-panel{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:18px;background:#00000052;border:1px solid var(--line)}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.panel-note{font-size:.78rem;color:var(--muted);text-align:right}.stepper{display:grid;grid-template-columns:56px 1fr 56px;align-items:center;gap:8px;padding:6px;border-radius:var(--radius);background:#0000004d}.stepper button{height:46px;border-radius:10px;background:#ffffff1a;font-size:1.4rem;font-weight:700}.stepper button:active{background:#ffffff2e}.stepper-value{text-align:center;font-size:1.7rem;font-weight:800;color:var(--gold)}.suit-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.suit-row.compact{grid-template-columns:repeat(4,1fr)}.suit-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:58px;border-radius:var(--radius);background:var(--card-face);color:var(--black);border:2px solid transparent}.suit-button.small{min-height:44px}.suit-button.red{color:var(--red)}.suit-button.active{border-color:var(--gold);box-shadow:0 0 0 3px #e3b34159}.suit-glyph{font-size:1.5rem;line-height:1}.suit-count{font-size:.7rem;font-weight:700;color:#00000080}.result h2.made{color:#6fcf97}.result h2.missed{color:#ef8a7a}.score-split{display:grid;grid-template-columns:1fr 1fr;gap:10px}.score-side{display:flex;flex-direction:column;gap:2px;padding:14px;border-radius:var(--radius);background:#00000040;border:1px solid var(--line)}.score-side.bid{border-color:#e3b34180}.score-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.score-side strong{font-size:1.8rem}.score-members{font-size:.76rem;color:var(--muted)}.score-table{width:100%;border-collapse:collapse;font-size:.9rem}.score-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;padding-bottom:6px}.score-table td{padding:9px 0;border-top:1px solid var(--line)}.score-table th:not(:first-child),.score-table td:not(:first-child){text-align:right}.score-table td .chip{margin-left:6px}.score-table tr.you td{color:var(--gold);font-weight:700}.score-table td.zero{color:#ef8a7a}.toast{position:fixed;top:calc(10px + var(--safe-top));left:50%;transform:translate(-50%);z-index:50;max-width:calc(100vw - 32px);padding:10px 16px;border-radius:999px;background:#922b21;color:#fff;font-size:.86rem;font-weight:600;box-shadow:0 8px 22px #0006;animation:toast-in .18s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}}@media(min-width:620px){.hand{--card-w: 68px}.card-lg{height:96px;font-size:1.2rem}.hand .card.is-selected{transform:translateY(-22px)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:360px){.hand{--card-w: 54px}.card-corner-rank{font-size:.62rem;letter-spacing:-.08em}.card-corner-suit{font-size:.6rem}}.lang-toggle{display:inline-flex;gap:2px;padding:2px;border-radius:999px;background:#00000040;border:1px solid rgba(255,255,255,.12)}.lang-toggle button{padding:5px 12px;border:0;border-radius:999px;background:transparent;color:#ffffff9e;font-size:.78rem;font-weight:700;font-family:inherit}.lang-toggle button.active{background:var(--gold);color:#1a1206}.lang-toggle.compact button{padding:3px 9px;font-size:.68rem}.home-header .lang-toggle{position:absolute;top:0;right:0}.home-header{position:relative}.lobby .lang-toggle.compact{align-self:center}.table-top{display:flex;align-items:center;gap:8px}.table-top .status-bar{flex:1;min-width:0}.result .lang-toggle.compact{align-self:center}.banner{position:fixed;left:50%;bottom:12px;transform:translate(-50%);z-index:40;padding:8px 16px;border-radius:999px;background:#000000c7;border:1px solid rgba(255,255,255,.14);color:#f3e6c8;font-size:.8rem;font-weight:600}
