:root{--bg:#f3f1ea;--surface:#fff;--felt:#1f5f3f;--felt-text:#fff;--text:#1c1c1c;--muted:#555;--primary:#0b5cad;--primary-text:#fff;--border:#c9c4b5;--focus:#ffbf00;--red:#b3141d;--black:#1c1c1c;--ok:#1e6b35;--warn:#8a4b00;--radius:8px;--card-w:3.2rem;--card-h:4.5rem;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.4}*{box-sizing:border-box}body{background:var(--bg);margin:0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{position:absolute;left:-999px}.skip-link:focus{background:var(--surface);z-index:10;padding:.5rem;top:.5rem;left:.5rem}.app__header{background:var(--felt);color:var(--felt-text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.app__header a{color:var(--felt-text)}.app__title{font-size:1.15rem;font-weight:700;text-decoration:none}.app__nav{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.app__nav select{margin-left:.25rem}.app__main{max-width:1100px;margin:0 auto;padding:.75rem}.connection{background:#ffffff26;border-radius:999px;padding:.1rem .5rem;font-size:.85rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1rem}h1{margin-top:0;font-size:1.5rem}h2{font-size:1.2rem}.button{font:inherit;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;min-height:2.75rem;padding:.5rem .9rem}.button:disabled{cursor:not-allowed;opacity:.55}.button--primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.button--danger{background:var(--red);border-color:var(--red);color:#fff}.button--small{min-height:2.25rem;padding:.25rem .6rem;font-size:.9rem}.error{color:var(--red);font-weight:600}.hint{color:var(--muted);font-size:.9rem}.badge{border:1px solid;border-radius:4px;margin-left:.35rem;padding:0 .4rem;font-size:.75rem;display:inline-block}.badge--ok{color:var(--ok)}.badge--warn{color:var(--warn)}input,select{font:inherit;border:1px solid var(--border);border-radius:6px;min-height:2.5rem;padding:.4rem}.name-form,.create-form{flex-direction:column;gap:.6rem;max-width:28rem;display:flex}.create-form label,.create-form fieldset{flex-direction:column;gap:.25rem;display:flex}.create-form label.inline,label.inline{flex-direction:row;align-items:center;gap:.4rem}fieldset{border:1px solid var(--border);border-radius:var(--radius)}.lobby{gap:1rem;display:grid}@media (width>=900px){.lobby{grid-template-columns:3fr 2fr}}.lobby__tables{border-collapse:collapse;width:100%;margin-bottom:1rem}.lobby__tables th,.lobby__tables td{text-align:left;border-bottom:1px solid var(--border);padding:.4rem}.rules-summary{color:var(--muted);font-size:.85rem}.actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.countdown{font-size:1.25rem;font-weight:700}.waiting__seats{gap:.4rem;padding:0;list-style:none;display:grid}.waiting__seats li{border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem;display:flex}.waiting__seats li.is-ready{border-color:var(--ok)}.waiting__seats li.is-empty{color:var(--muted);border-style:dashed}.share-link input{width:100%}.profile{max-width:40rem}.avatar{font-size:1.1em}.avatar-picker{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.avatar-option{border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:.3rem;min-height:2.75rem;padding:.3rem .5rem;font-size:1.4rem;display:inline-flex}.avatar-option span:not([aria-hidden]){font-size:1rem}.avatar-option:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}.turn-timer{font-variant-numeric:tabular-nums;background:var(--surface);color:var(--text);border-radius:999px;padding:.1rem .6rem;font-weight:700}.turn-timer--warn{color:#1c1c1c;background:#ffd23f}.turn-timer--danger{background:var(--red);color:#fff}.voice h2{margin:0;font-size:1.1rem}.voice__header{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.voice__list{flex-wrap:wrap;gap:.4rem 1rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.voice__list li{align-items:center;gap:.4rem;display:flex}.voice__name{font-weight:600}.chat h2{margin-top:0}.chat__log{overflow-wrap:anywhere;max-height:12rem;margin:0 0 .5rem;overflow-y:auto}.chat__log ol{margin:0;padding:0;list-style:none}.chat__log li{padding:.15rem 0}.chat__form{gap:.4rem;display:flex}.chat__form input{flex:1;min-width:0}.chat__players ul{gap:.4rem;padding:0;list-style:none;display:grid}.chat__players li{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.report-form{flex-direction:column;gap:.3rem;width:100%;display:flex}.report-form label{flex-direction:column;display:flex}.reactions{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.reactions__button{padding:.1rem .5rem;font-size:1.2rem}.reaction-bubble{margin-left:.3rem;font-size:1.2rem}.history__list{gap:1rem;padding:0;list-style:none;display:grid}.history__match h2{margin:0 0 .3rem;font-size:1.05rem}.history__date{color:var(--muted);font-size:.9rem;font-weight:400}.history table{border-collapse:collapse;width:100%}.history th,.history td{text-align:left;border-bottom:1px solid var(--border);padding:.3rem}.history tr.is-me{font-weight:700}.rematch{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.6rem 0;display:flex}.card{width:var(--card-w);height:var(--card-h);-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #888;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:1.05rem;font-weight:700;line-height:1;display:inline-flex;position:relative}button.card{cursor:pointer}.card--red{color:var(--red)}.card--black{color:var(--black)}.card__suit{font-size:1.35rem}.card__wild{color:var(--warn);font-size:.7rem;position:absolute;top:2px;right:3px}.card--wild{background:#fff7e0}.card--selected{box-shadow:0 0 0 3px var(--primary);transform:translateY(-.6rem)}.card--small{--card-w:2.2rem;--card-h:3.1rem;font-size:.85rem}.card--small .card__suit{font-size:1rem}.card--back{background:repeating-linear-gradient(45deg,#0b5cad,#0b5cad 6px,#2f7bd0 6px 12px)}.card--empty{background:0 0;border-style:dashed}.game{flex-direction:column;gap:.6rem;display:flex}.game__info{flex-wrap:wrap;align-items:center;gap:.4rem 1rem;font-weight:600;display:flex}.game__leave{margin-left:auto}.seats{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.seat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.1rem;padding:.4rem .5rem;font-size:.9rem;display:flex}.seat--turn{border:2px solid var(--primary)}.seat--me{background:#eef5ff}.seat--out{opacity:.6}.seat__name{overflow-wrap:anywhere;font-weight:700}.seat__meta{color:var(--muted);gap:.6rem;display:flex}.game__center{background:var(--felt);color:var(--felt-text);border-radius:var(--radius);gap:.6rem;padding:.6rem;display:grid}@media (width>=760px){.game__center{grid-template-columns:auto 1fr}}.piles{flex-wrap:wrap;gap:1rem;display:flex}.pile{flex-direction:column;align-items:flex-start;gap:.3rem;display:flex}.pile__label{font-size:.85rem}.claim{border-radius:var(--radius);background:#0000004d;flex-direction:column;gap:.3rem;padding:.4rem;display:flex}.claim__prompt{font-weight:700}.melds__empty{margin:0}.melds{flex-direction:column;gap:.5rem;display:flex}.melds h3{margin:0 0 .2rem;font-size:.95rem}.melds__list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.meld{background:#0003;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.3rem;padding:.25rem;display:flex}.meld__kind{font-size:.75rem}.meld__cards{flex-wrap:wrap;gap:2px;display:inline-flex}.game__status{margin:0;font-weight:600}.game__note{color:var(--muted);margin:0}.builder{border:1px solid var(--warn);border-radius:var(--radius);background:#fff7e0;padding:.5rem}.builder h2{margin:0 0 .3rem;font-size:1rem}.builder ul{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.builder__group,.builder__steal{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.game__hand{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem}.hand__tools{gap:.4rem;margin-bottom:.4rem;display:flex}.hand{touch-action:pan-y;flex-wrap:wrap;gap:.3rem;margin:0;padding:.8rem 0 0;list-style:none;display:flex}.hand__card{flex-direction:column;align-items:center;display:flex;position:relative}.hand__card.is-dragging{z-index:2;opacity:.8}.hand__tag{color:var(--warn);font-size:.7rem}.results{z-index:5;max-width:34rem;max-height:80vh;margin:0 auto;position:fixed;inset:auto .5rem .5rem;overflow:auto;box-shadow:0 4px 24px #0000004d}.results table{border-collapse:collapse;width:100%}.results th,.results td{text-align:left;border-bottom:1px solid var(--border);padding:.3rem}@media (width<=420px){:root{--card-w:2.55rem;--card-h:3.6rem}.card{font-size:.9rem}.card__suit{font-size:1.1rem}.seats{grid-template-columns:repeat(2,1fr)}.app__main{padding:.4rem}}
