*{box-sizing:border-box}body{font:17px system-ui;color:#22332e;background:#f5f3ed;margin:0}main{max-width:960px;margin:auto;padding:20px}h1{text-align:center}h1 small{display:block;font-size:16px;font-weight:400}h2{font-size:23px}.card{background:white;padding:20px;border-radius:16px;margin:16px 0}.row{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}button,input,select{font:inherit;border:1px solid #b7c5be;border-radius:9px;padding:12px;background:white;color:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}input{max-width:100%}label{display:block;margin:12px 0}.player{flex:1;min-width:140px;border:3px solid transparent;border-top-color:var(--color)}.player.active{border-color:var(--color)}.score{font-size:30px}.player small{display:block;color:#53655c}.die{width:60px;height:60px;padding:8px;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:3px;border:1px solid #b7c5be;border-radius:9px;background:white;color:#22332e}.pip{place-self:center;width:9px;height:9px;border-radius:50%;background:currentColor}.available{background:#d9efdf}.selected,.winning{background:#235941;color:white}.hot{background:#fff0cd;color:#854c00}.bust{background:#ffe2df;color:#a12b24}.cold{background:#dcefff;color:#185b91}.mini{width:24px;height:24px;padding:3px;gap:1px;border-radius:5px}.mini .pip{width:3px;height:3px}aside{text-align:right}.packet{display:flex;gap:4px;justify-content:flex-end;align-items:center;margin:6px 0}.packet strong{min-width:65px}.challenge{background:#1d2935;color:white}#error{color:#a52626}#connection{color:#53655c}details{margin:20px 0}#audit p{border-bottom:1px solid #ddd;padding:8px}#dice.rolling .die{animation:arrive .18s both;animation-delay:var(--delay)}@keyframes arrive{from{opacity:0;transform:translateY(-14px) rotate(-12deg)}to{opacity:1;transform:none}}[hidden]{display:none!important}@media(max-width:500px){main{padding:12px}.card{padding:12px}.die{width:50px;height:50px;padding:6px}.mini{width:24px;height:24px;padding:3px}.row{gap:7px}.player{min-width:110px}}@media(prefers-reduced-motion:reduce){#dice.rolling .die{animation:none}}

#dice{min-height:66px}

.challenge #actions button{color:#22332e;background:#fff}
.challenge #actions button:disabled{color:#53655c;background:#e9ecea;opacity:1}

#chart{background:white;border-radius:12px;padding:12px}#chart svg{width:100%;height:auto}summary{cursor:pointer}.chart-legend{font-size:14px}.success{color:#198544}.failure{color:#d63232}

#chat{background:white;border:1px solid #b7c5be;border-radius:12px;padding:12px;max-width:440px;margin:16px 0 16px auto}#chat summary{font-weight:600}#chat-messages{max-height:210px;overflow-y:auto;overflow-wrap:anywhere}#chat-messages p{margin:10px 0}#chat-messages small{color:#53655c;font-size:12px}#chat-form label{font-size:14px}#chat-form .row{flex-wrap:nowrap;margin:8px 0}#chat-input{flex:1;min-width:0}#chat-error{color:#a52626;font-size:14px}

#emoji-toggle{padding:6px 10px;margin-top:8px}#emoji-picker{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;padding:8px 0}#emoji-picker button{font-size:23px;padding:6px;min-width:0}#emoji-picker button:hover{background:#edf3ef}

#chat{border:0;padding:0;max-width:none;margin:0}.panel-tabs{display:flex;gap:6px;overflow-x:auto;border-bottom:1px solid #b7c5be;padding-bottom:10px;margin-bottom:14px}.panel-tabs button{white-space:nowrap;padding:10px 14px}.panel-tabs [aria-selected="true"]{background:#235941;color:white;border-color:#235941}[role="tabpanel"]{min-height:180px}#chat-messages{max-height:250px}#audit{max-height:360px;overflow:auto}#grid{overflow-x:auto}

dialog{border:1px solid #b7c5be;border-radius:16px;max-width:min(620px,95vw);color:#22332e}dialog::backdrop{background:#0007}#why-text{line-height:1.6}#room-controls{align-items:center}#qr{image-rendering:pixelated;max-width:100%}.summary-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:10px;text-align:left;border-bottom:1px solid #ddd}#players-list .card{padding:8px}
