*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{color:#333;background:#f0ead6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.screen{height:100vh;display:none}.screen.active{display:flex}@supports (height:100dvh){.screen{height:100dvh}}:root{--blue:#5b8ec9;--yellow:#e8c840;--red:#d45555;--green:#5cb85c;--board-bg:#e0d9c4;--board-line:#c9c2ac;--bg:#f0ead6;--text:#333;--text-muted:#888;--card-bg:#faf6e9}.btn{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:16px;font-weight:600;transition:opacity .2s}.btn:active{opacity:.8}.btn-primary{background:var(--blue);color:#fff}.btn-secondary{background:var(--board-bg);color:var(--text)}.btn-small{color:var(--text-muted);background:0 0;padding:6px 12px;font-size:14px}.btn-control{background:var(--blue);color:#fff;flex:1}.btn-pass,.btn-cancel{color:#fff;background:#888;flex:1}.btn-confirm{background:var(--green);color:#fff;flex:1;font-weight:700}.btn-confirm:disabled{color:#999;opacity:.6;background:#ccc}.btn:disabled{opacity:.4;cursor:not-allowed}#lobby-screen{justify-content:center;align-items:center}.lobby-container{text-align:center;width:100%;max-width:360px;padding:20px}.logo{letter-spacing:4px;color:var(--blue);margin-bottom:4px;font-size:48px}.subtitle{color:var(--text-muted);margin-bottom:32px}.form-group{margin-top:16px}.form-group input{border:2px solid var(--board-bg);background:#fff;border-radius:8px;outline:none;width:100%;margin-bottom:12px;padding:12px 16px;font-size:16px}.form-group input:focus{border-color:var(--blue)}.form-group .btn{width:100%}.welcome-msg{color:var(--text-muted);margin-bottom:16px}.welcome-msg span{color:var(--text);font-weight:600}.divider{color:var(--text-muted);align-items:center;gap:12px;margin:16px 0;display:flex}.divider:before,.divider:after{content:"";background:var(--board-bg);flex:1;height:1px}.join-group{gap:8px;display:flex}.join-group input{flex:1;margin-bottom:0}.join-group .btn{white-space:nowrap;flex:0}.error-msg{color:var(--red);margin-top:12px;font-size:14px}#room-screen{justify-content:center;align-items:center}.room-container{width:100%;max-width:400px;padding:20px}.room-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.room-header-actions{gap:6px;display:flex}.room-header h2{font-size:24px}.room-header span{letter-spacing:2px;font-family:monospace}.player-list{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.player-slot{background:var(--card-bg);border-left:4px solid var(--board-bg);border-radius:8px;align-items:center;gap:12px;padding:12px 16px;display:flex}.player-slot.blue{border-left-color:var(--blue)}.player-slot.yellow{border-left-color:var(--yellow)}.player-slot.red{border-left-color:var(--red)}.player-slot.green{border-left-color:var(--green)}.player-slot .name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.player-slot .badge{border-radius:10px;padding:2px 8px;font-size:12px}.player-slot .badge.ready{background:var(--green);color:#fff}.player-slot .badge.waiting{background:var(--board-bg);color:var(--text-muted)}.player-slot .badge.bot{background:var(--text-muted);color:#fff}.player-slot.empty{opacity:.4;border-style:dashed}.btn-remove-bot{background:var(--red);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:12px;font-weight:700;line-height:1;display:flex}.room-actions{gap:8px;margin-bottom:12px;display:flex}.room-actions .btn{flex:1}.status-msg{text-align:center;color:var(--text-muted);font-size:14px}.room-settings{background:var(--card-bg);border:1px solid var(--board-line);border-radius:8px;margin-bottom:16px;padding:14px 16px}.room-settings .settings-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;font-size:13px;font-weight:600}.room-settings .setting-row{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.room-settings .setting-row:last-child{margin-bottom:0}.room-settings .setting-name{font-size:13px;font-weight:500}.room-settings .setting-value{font-size:13px;font-weight:600}.room-settings .setting-value.off{color:var(--red)}.room-settings input[type=range]{appearance:none;background:var(--board-line);border-radius:3px;outline:none;width:100%;height:6px;margin:6px 0 4px}.room-settings input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--blue);cursor:pointer;background:#fff;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 3px #00000026}.room-settings .slider-labels{color:var(--text-muted);justify-content:space-between;font-size:11px;display:flex}.toggle-switch{cursor:pointer;width:44px;height:24px;position:relative}.toggle-switch input{display:none}.toggle-track{background:var(--board-line);border-radius:12px;width:100%;height:100%;transition:background .2s}.toggle-switch input:checked+.toggle-track{background:var(--blue)}.toggle-thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:left .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.toggle-switch input:checked~.toggle-thumb{left:22px}.observer-list{color:var(--text-muted);margin-top:12px;font-size:13px}.observer-list .observer-header{margin-bottom:6px;font-weight:600}.observer-item{background:var(--card-bg);border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:6px 12px;display:flex}.observer-item .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.btn-watch{border:1.5px solid var(--text-muted);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:3px 10px;font-size:12px}.btn-join-player{background:var(--blue);color:#fff;cursor:pointer;border:none;border-radius:6px;flex-shrink:0;padding:3px 10px;font-size:12px}#game-screen{flex-direction:column}.game-container{flex-direction:column;height:100vh;display:flex}@supports (height:100dvh){.game-container{height:100dvh}}.game-status-bar{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top,0px));background:var(--card-bg);border-bottom:1px solid var(--board-bg);flex-direction:column;gap:4px;display:flex}.status-row{justify-content:space-between;align-items:center;display:flex}.turn-indicators{flex-wrap:wrap;gap:6px;display:flex}.turn-indicator{color:#fff;opacity:.4;text-overflow:ellipsis;white-space:nowrap;border-radius:12px;max-width:90px;padding:4px 10px;font-size:12px;font-weight:600;transition:opacity .3s;overflow:hidden}.turn-indicator.active{opacity:1;box-shadow:0 0 8px #0003}.turn-indicator.passed{opacity:.2;text-decoration:line-through}.turn-indicator.disconnected{opacity:.3}.turn-indicator.blue{background:var(--blue)}.turn-indicator.yellow{background:var(--yellow)}.turn-indicator.red{background:var(--red)}.turn-indicator.green{background:var(--green)}.game-room-code{color:var(--text-muted);font-family:monospace;font-size:12px}.btn-rules{border:1.5px solid var(--text-muted);width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:13px;font-weight:700;line-height:1;display:flex}.bot-picker{flex-direction:column;gap:6px;display:flex}.bot-pick-item{background:var(--card-bg);cursor:pointer;border:2px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;transition:border-color .2s;display:flex}.bot-pick-item:active{border-color:var(--blue)}.bot-pick-item .bot-name{font-weight:600}.rules-content{text-align:left}.rules-content h2{text-align:center}.rules-content h3{margin-bottom:8px;font-size:16px}.rules-list{margin-bottom:16px}.rules-list p{color:var(--text);margin-bottom:6px;font-size:14px}.rules-divider{background:var(--board-bg);height:1px;margin-bottom:16px}.rules-content .btn{width:100%}.turn-countdown{text-align:left;min-width:50px;font-size:18px;font-weight:700}.countdown-green{color:var(--green)}.countdown-yellow{color:var(--yellow)}.countdown-red{color:var(--red)}.timeout-toast{color:#fff;z-index:50;pointer-events:none;background:#000c;border-radius:20px;padding:8px 20px;font-size:14px;font-weight:600;animation:2s ease-in-out forwards fadeInOut;position:fixed;top:60px;left:50%;transform:translate(-50%)}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%)translateY(-10px)}15%{opacity:1;transform:translate(-50%)translateY(0)}85%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-10px)}}.game-main{flex:1;min-height:0;display:flex}.game-sidebar{border-right:1px solid var(--board-bg);background:var(--card-bg);flex-direction:column;width:200px;padding:12px;display:none;overflow-y:auto}.sidebar-players{margin-bottom:12px}.sidebar-player{text-overflow:ellipsis;white-space:nowrap;border-radius:6px;align-items:center;gap:8px;margin-bottom:4px;padding:6px 8px;font-size:13px;display:flex;overflow:hidden}.sidebar-player.active{font-weight:700}.sidebar-player .dot{border-radius:50%;width:10px;height:10px}.sidebar-inventory{flex:1;margin-bottom:8px;overflow-y:auto}.sidebar-controls{flex-direction:column;gap:6px;display:flex}.sidebar-controls .btn{padding:8px;font-size:13px}.board-wrapper{flex:1;justify-content:center;align-items:center;min-height:0;padding:8px;display:flex}#game-board{touch-action:none;max-width:100%;max-height:100%}#game-board.pulse-border{animation:.5s ease-out 2 boardShake}@keyframes boardShake{0%{transform:translate(0)}15%{transform:translate(-4px,2px)}30%{transform:translate(4px,-2px)}45%{transform:translate(-3px,-1px)}60%{transform:translate(3px,1px)}75%{transform:translate(-1px,1px)}to{transform:translate(0)}}.mobile-controls{background:var(--card-bg);border-top:1px solid var(--board-bg);gap:6px;padding:8px 12px;display:flex}.watching-indicator{background:var(--card-bg);border-top:1px solid var(--board-bg);color:var(--text-muted);justify-content:center;align-items:center;padding:10px 12px;font-size:14px;font-weight:600;display:flex}.observer-count{color:var(--text-muted);font-size:12px;font-weight:600}.mobile-inventory{padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));background:var(--card-bg);border-top:1px solid var(--board-bg);flex-wrap:wrap;justify-content:center;gap:6px;max-height:200px;display:flex;overflow-y:auto}.piece-item{cursor:pointer;border:2px solid #0000;border-radius:4px;padding:4px;transition:border-color .2s}.piece-item:hover{border-color:var(--board-bg)}.piece-item.selected{border-color:var(--blue);background:#5b8ec91a}.piece-item.used{opacity:.15;pointer-events:none}.piece-item canvas{display:block}.overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.overlay-content{background:var(--bg);text-align:center;border-radius:16px;width:90%;max-width:360px;padding:32px}.overlay-content h2{margin-bottom:20px}.score-row{background:var(--card-bg);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:10px 16px;display:flex}.score-row.winner{border:2px solid var(--yellow);font-weight:700}.score-row .color-dot{border-radius:50%;flex-shrink:0;width:14px;height:14px}.score-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.score-row .score{font-size:18px;font-weight:600}.game-over-actions{gap:8px;margin-top:20px;display:flex}.game-over-actions .btn{flex:1}@media (width>=768px){.game-sidebar{display:flex}.mobile-controls,.mobile-inventory{display:none}}@media (width<=767px){.game-sidebar{display:none}}
