:root{--bg: #f4f6f8;--surface: #ffffff;--text: #1c2733;--muted: #64748b;--accent: #2563eb;--accent-dark: #1e40af;--green: #16a34a;--amber: #d97706;--red: #dc2626;--border: #e2e8f0;--radius: 10px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}button{font:inherit;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.5rem 1rem}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:not(:disabled):hover{background:var(--accent-dark)}input{font:inherit;padding:.55rem .8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.landing{max-width:26rem;margin:10vh auto 0;padding:1.5rem;text-align:center}.landing h1{font-size:2rem}.tagline{color:var(--muted)}.landing .big{font-size:1.1rem;padding:.8rem 1.6rem;margin-top:1rem}.hint{color:var(--muted);font-size:.85rem}.join-form{display:flex;gap:.5rem;justify-content:center;margin-top:2rem}.join-form input{flex:1;min-width:0;text-transform:uppercase}.error{color:var(--red)}.room{max-width:60rem;margin:0 auto;padding:1.25rem}.room-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.room-header h1{margin:0;font-size:1.4rem}.code{font-family:ui-monospace,monospace;letter-spacing:.12em;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.1rem .45rem}.topic{margin:.4rem 0 0;color:var(--muted)}.header-right{display:flex;align-items:center;gap:.75rem}.reconnecting{color:var(--amber);font-size:.85rem}.room-body{display:grid;grid-template-columns:1fr 16rem;gap:1.25rem;margin-top:1.5rem}@media(max-width:44rem){.room-body{grid-template-columns:1fr}}.main-col{display:flex;flex-direction:column;gap:1.25rem}.phase-hint{color:var(--muted);margin:0}.card-deck{display:flex;flex-wrap:wrap;gap:.75rem}.poker-card{width:3.6rem;height:5.2rem;font-size:1.35rem;font-weight:600;border:2px solid var(--border);border-radius:12px;background:var(--surface);transition:transform .1s,border-color .1s}.poker-card:not(:disabled):hover{transform:translateY(-4px);border-color:var(--accent)}.poker-card.selected{border-color:var(--accent);background:var(--accent);color:#fff;transform:translateY(-4px)}.participant-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.participant-list h2{margin:0 0 .6rem;font-size:1rem}.participant-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.participant-list li{display:flex;align-items:center;gap:.5rem}.participant-list li.ghost{opacity:.5}.dot{width:.55rem;height:.55rem;border-radius:50%;flex-shrink:0}.dot.on{background:var(--green)}.dot.off{background:var(--muted)}.pname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pstatus{color:var(--muted);font-size:.8rem;white-space:nowrap}.kick{border:none;background:none;color:var(--muted);padding:0 .25rem;font-size:.9rem}.kick:hover{color:var(--red)}.host-controls{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem}.topic-form{flex:1;min-width:14rem}.topic-form input{width:100%}.host-buttons{display:flex;gap:.5rem}.results-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}.results-panel h2{margin:0 0 .75rem;font-size:1.05rem}.badge{display:inline-block;padding:.35rem .8rem;border-radius:999px;font-weight:600;margin:0 0 1rem}.badge.consensus{background:#dcfce7;color:var(--green)}.badge.no-consensus{background:#fef3c7;color:var(--amber)}.distribution{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.dist-row{display:flex;align-items:center;gap:.6rem}.dist-card{width:1.8rem;text-align:center;font-weight:600;font-family:ui-monospace,monospace}.dist-bar{height:1.1rem;min-width:.5rem;background:var(--accent);border-radius:4px}.dist-count{color:var(--muted);font-size:.85rem}.stats-line{color:var(--muted);margin:0 0 1rem}.votes-table{border-collapse:collapse;width:100%}.votes-table caption{text-align:left;font-size:.8rem;color:var(--muted);margin-bottom:.4rem}.votes-table td{border-top:1px solid var(--border);padding:.4rem .5rem}.vote-cell{text-align:right;font-weight:600;font-family:ui-monospace,monospace}.share-link{font-size:.9rem}
