@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;900&family=DM+Sans:wght@400;500;600;700&display=swap";.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{--space-size: clamp(42px, calc((100vh - 40px) / 11), 72px)}.game-container{display:flex;gap:12px;padding:10px;height:100vh;overflow:hidden}.board{display:flex;flex-direction:column;background:#c8e6c9;border-radius:8px;padding:3px;flex-shrink:0;position:relative;height:fit-content;align-self:center}.sidebar{flex:1;min-width:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:#1a2744;border-radius:3px}.grid-toolbar{display:flex;justify-content:flex-end;padding:4px 4px 0;flex-shrink:0}.btn-reset-layout{background:#1a2744;color:#89b;font-size:11px;padding:4px 12px;border-radius:6px;border:1px solid #2a3a5c;cursor:pointer;transition:all .15s}.btn-reset-layout:hover{background:#2a3a5c;color:#ccd}.grid-panel{background:#111b2e;border-radius:10px;border:1px solid #1a2744;display:flex;flex-direction:column;overflow:hidden}.panel-drag-handle{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#0d1524;color:#89b;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;cursor:grab;-webkit-user-select:none;user-select:none;border-bottom:1px solid #1a2744;flex-shrink:0}.panel-drag-handle:active{cursor:grabbing;background:#162040}.drag-grip{margin-left:auto;color:#556;font-size:10px}.panel-content{flex:1;overflow-y:auto;padding:8px}.panel-content::-webkit-scrollbar{width:4px}.panel-content::-webkit-scrollbar-track{background:transparent}.panel-content::-webkit-scrollbar-thumb{background:#1a2744;border-radius:2px}.panel-log-content{padding:0}.trade-panel{display:flex;flex-direction:column;gap:8px}.trade-section{display:flex;flex-direction:column;gap:4px}.trade-label{font-size:11px;color:#89b;font-weight:600}.trade-select{background:#0d1524;border:1px solid #1a2744;color:#dde;padding:6px 8px;border-radius:6px;font-size:12px}.trade-columns{display:flex;gap:8px}.trade-col{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.trade-col-header{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:4px 6px;border-radius:4px;text-align:center}.trade-offer-header{background:#4caf501f;color:#66bb6a}.trade-request-header{background:#e945601f;color:#e94560}.trade-prop-list{display:flex;flex-direction:column;gap:3px;max-height:100px;overflow-y:auto}.trade-prop-btn{font-size:10px;padding:4px 6px;background:#0d1524;border:1px solid #1a2744;color:#9ab;border-radius:4px;cursor:pointer;text-align:left;transition:all .15s}.trade-prop-btn:hover{border-color:#2a3a5c;color:#dde}.trade-prop-btn.selected{background:#4caf5026;border-color:#4caf50;color:#66bb6a;font-weight:700}.trade-empty{font-size:10px;color:#556;padding:8px;text-align:center;font-style:italic}.trade-money-row{display:flex;align-items:center;gap:4px;font-size:11px;color:#89b}.trade-money-input{flex:1;background:#0d1524;border:1px solid #1a2744;color:#dde;padding:4px 6px;border-radius:4px;font-size:11px;min-width:0}.btn-trade-send{background:#1565c0;color:#e3f2fd;font-size:12px;padding:8px;border-radius:6px;font-weight:700}.btn-trade-send:disabled{opacity:.35}.btn-trade-send:hover:not(:disabled){background:#1976d2}.trade-incoming-header{font-size:12px;font-weight:700;color:#dde;text-align:center;padding:4px}.trade-summary{display:flex;align-items:flex-start;gap:6px}.trade-summary-side{flex:1;display:flex;flex-direction:column;gap:3px}.trade-summary-label{font-size:10px;font-weight:700;color:#89b;text-transform:uppercase}.trade-summary-item{font-size:11px;color:#ccd;padding:3px 6px;background:#0d1524;border-radius:4px}.trade-money-green{color:#4caf50;font-weight:700}.trade-money-red{color:#e94560;font-weight:700}.trade-summary-divider{color:#556;padding-top:16px;font-size:12px}.trade-actions{display:flex;gap:6px}.btn-trade-accept{flex:1;background:#1b5e20;color:#c8e6c9;padding:8px;border-radius:6px;font-weight:700;font-size:12px}.btn-trade-accept:hover{background:#2e7d32}.btn-trade-reject{flex:1;background:#b71c1c;color:#ffcdd2;padding:8px;border-radius:6px;font-weight:700;font-size:12px}.btn-trade-reject:hover{background:#c62828}.trade-waiting{font-size:12px;color:#9ab;text-align:center;padding:8px;font-style:italic}.trade-status{font-size:11px;color:#778;text-align:center;padding:8px}.btn-trade-cancel{background:#757575;color:#eee;padding:8px;border-radius:6px;font-weight:700;font-size:12px;width:100%}.btn-trade-cancel:hover{background:#888}.log-trade .log-icon{color:#42a5f5}.board-row,.board-middle{display:flex}.board-col{display:flex;flex-direction:column}.board-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:10px;min-width:120px;min-height:120px}.board-center h2{font-size:clamp(.9rem,2vw,1.5rem);color:#c62828;letter-spacing:4px;text-shadow:1px 1px 2px rgba(0,0,0,.2)}.space{width:var(--space-size);min-height:var(--space-size);border:1px solid #999;background:#e8f5e9;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3px;position:relative;font-size:clamp(7px,calc(var(--space-size) * .12),10px);text-align:center;color:#333;overflow:hidden}.space-color{width:100%;height:12px;position:absolute;top:0;left:0;border-bottom:1px solid #999}.space-icon{font-size:clamp(8px,calc(var(--space-size) * .15),12px);margin-top:6px;color:#555}.space-name{font-weight:600;font-size:clamp(6px,calc(var(--space-size) * .11),9px);margin-top:2px;line-height:1.15;max-width:100%;overflow:hidden;text-overflow:ellipsis}.space-price{font-size:clamp(6px,calc(var(--space-size) * .11),9px);color:#666;margin-top:1px}.space-owned{background:#fffffff2}.space-owner-badge{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:8px;color:#fff;box-shadow:0 1px 3px #0000004d;z-index:2}.space-houses{position:absolute;bottom:2px;left:0;right:0;display:flex;justify-content:center;gap:2px;z-index:3}.house-icon{font-size:9px;color:#2e7d32;filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))}.hotel-icon{font-size:12px;color:#c62828;filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))}.build-panel{display:flex;flex-direction:column;gap:8px}.build-panel h3{font-size:13px;color:#89b;text-transform:uppercase;letter-spacing:.5px;margin:0}.deed-group{display:flex;flex-direction:column;gap:6px}.deed-card{background:#0f1a2e;border-radius:8px;overflow:hidden;border:1px solid #1a2744}.deed-color-bar{height:6px;width:100%}.deed-title{font-size:11px;font-weight:700;color:#dde;text-align:center;padding:6px 8px 2px;text-transform:uppercase;letter-spacing:.5px}.deed-body{padding:6px 10px 8px}.deed-rent-table{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}.deed-row{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#778;padding:2px 4px;border-radius:3px}.deed-row-active{background:#4caf5026;color:#66bb6a;font-weight:700}.deed-footer{border-top:1px solid #1a2744;padding-top:6px;display:flex;flex-direction:column;gap:3px}.deed-info-row{display:flex;justify-content:space-between;font-size:10px;color:#9ab}.deed-current-rent{color:#4caf50;font-weight:700}.btn-build-deed{width:100%;margin-top:6px;padding:5px 8px;font-size:11px;font-weight:700;background:#1b5e20;color:#c8e6c9;border:1px solid #2e7d32;border-radius:5px;cursor:pointer;transition:background .15s}.btn-build-deed:hover:not(:disabled){background:#2e7d32;color:#fff}.btn-build-deed:disabled{opacity:.35;cursor:not-allowed}.player-token{position:absolute;width:22px;height:22px;border-radius:50%;border:2px solid #fff;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);z-index:10;box-shadow:0 2px 6px #0006;pointer-events:none}.player-token-moving{z-index:20;transform:translate(-50%,-50%) scale(1.25);box-shadow:0 4px 12px #00000080}.player-token-jailed{animation:jail-pulse 1.5s ease-in-out infinite;border-color:#ff7043!important;box-shadow:0 0 0 2px #ff704366,0 2px 6px #0006}@keyframes jail-pulse{0%,to{box-shadow:0 0 0 2px #ff704366,0 2px 6px #0006;transform:translate(-50%,-50%) scale(1)}50%{box-shadow:0 0 0 5px #ff704333,0 0 12px #ff70434d,0 2px 6px #0006;transform:translate(-50%,-50%) scale(1.05)}}.space-go,.space-jail,.space-free-parking,.space-go-to-jail{width:var(--space-size);min-height:var(--space-size);font-weight:700;font-size:clamp(7px,calc(var(--space-size) * .12),10px);background:#dcedc8}.space-chance{background:#fff9c4}.space-community-chest{background:#e3f2fd}.space-tax{background:#fce4ec}.dice-display-3d{display:flex;flex-direction:column;align-items:center;gap:10px}.dice-pair{display:flex;gap:20px}.die-container{width:clamp(48px,6vw,68px);height:clamp(48px,6vw,68px);perspective:500px}.die-cube{width:100%;height:100%;position:relative;transform-style:preserve-3d;transform:rotateX(0) rotateY(0)}@keyframes dice-tumble{0%{transform:rotateX(0) rotateY(0) rotate(0)}20%{transform:rotateX(120deg) rotateY(240deg) rotate(60deg)}40%{transform:rotateX(240deg) rotateY(120deg) rotate(180deg)}60%{transform:rotateX(60deg) rotateY(300deg) rotate(300deg)}80%{transform:rotateX(300deg) rotateY(60deg) rotate(120deg)}to{transform:rotateX(360deg) rotateY(360deg) rotate(360deg)}}.die-face{position:absolute;width:100%;height:100%;background:linear-gradient(145deg,#fff,#f0f0f0);border:2px solid #d0d0d0;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 10px #0000000d}.die-front{transform:translateZ(34px)}.die-back{transform:rotateY(180deg) translateZ(34px)}.die-right{transform:rotateY(90deg) translateZ(34px)}.die-left{transform:rotateY(-90deg) translateZ(34px)}.die-top{transform:rotateX(90deg) translateZ(34px)}.die-bottom{transform:rotateX(-90deg) translateZ(34px)}.dice-dots{display:grid;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:48px;height:48px;padding:2px}.dice-dot{width:12px;height:12px;background:radial-gradient(circle at 35% 35%,#444,#111);border-radius:50%;align-self:center;justify-self:center;box-shadow:0 1px 3px #0006,inset 0 1px 1px #ffffff1a}.die-cube.landing{animation:dice-bounce .4s cubic-bezier(.34,1.56,.64,1)}@keyframes dice-bounce{0%{filter:drop-shadow(0 8px 12px rgba(0,0,0,.3))}50%{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}to{filter:drop-shadow(0 4px 6px rgba(0,0,0,.15))}}.dice-total{min-height:20px}.dice-total-number{font-size:14px;font-weight:700;color:#555;letter-spacing:1px}.doubles-badge{color:#e94560;font-weight:700;font-size:15px;padding:6px 16px;background:#e9456026;border-radius:8px;animation:doubles-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes doubles-pop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.card-display{width:clamp(160px,18vw,220px);padding:12px;border-radius:10px;text-align:center;animation:card-appear .5s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 16px #00000026}.card-chance{background:linear-gradient(135deg,#fff9c4,#fff176);border:2px solid #f9a825;color:#5d4037}.card-community{background:linear-gradient(135deg,#e3f2fd,#90caf9);border:2px solid #1976d2;color:#1a237e}.card-header{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}.card-icon{font-size:28px;margin-bottom:10px}.card-chance .card-icon{color:#e65100}.card-community .card-icon{color:#1565c0}.card-text{font-size:12px;line-height:1.5;font-weight:500}@keyframes card-appear{0%{transform:scale(.3) rotateY(90deg);opacity:0}60%{transform:scale(1.05) rotateY(-5deg);opacity:1}to{transform:scale(1) rotateY(0);opacity:1}}.action-panel{display:flex;flex-direction:column;align-items:center;gap:8px}.jail-actions{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.jail-status-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#ff70431f;border:1px solid rgba(255,112,67,.3);border-radius:8px;color:#ff7043;font-weight:700;font-size:14px;animation:jail-status-glow 2s ease-in-out infinite}@keyframes jail-status-glow{0%,to{box-shadow:0 0 #ff704300}50%{box-shadow:0 0 12px 2px #ff704326}}.jail-turns-count{font-size:11px;font-weight:600;color:#ffab91;background:#ff704326;padding:2px 8px;border-radius:10px}.btn-bail{background:#e65100;color:#ffe0b2;font-size:13px}.btn-bail:hover{background:#f57c00}.doubles-info{color:#e94560;font-weight:700;font-size:13px;padding:4px 12px;background:#e9456026;border-radius:6px}.btn{padding:10px 24px;font-size:14px;border-radius:8px;font-weight:700}.btn-roll{background:#4caf50;color:#fff;font-size:16px}.btn-buy{background:#2196f3;color:#fff}.btn-skip{background:#757575;color:#fff}.btn-end{background:#ff9800;color:#fff}.buy-decision{text-align:center;display:flex;flex-direction:column;gap:6px;color:#333}.waiting{color:#999;font-style:italic}.gameover{text-align:center;padding:16px;background:#e94560;border-radius:8px;color:#fff}.react-grid-item.react-grid-placeholder{background:#4caf5026!important;border:2px dashed #4caf50!important;border-radius:10px;opacity:1!important}.react-resizable-handle{opacity:.3;transition:opacity .2s}.react-resizable-handle:hover{opacity:.8}.react-grid-item>.react-resizable-handle:after{border-color:#4caf50!important}.player-panel{background:#16213e;border-radius:8px;padding:12px;border:2px solid transparent;transition:border-color .2s}.player-panel.active-turn{border-color:#4caf50}.player-panel.bankrupt{opacity:.5}.player-header{display:flex;align-items:center;gap:8px}.player-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.player-name{font-weight:600;flex:1}.player-money{font-weight:700;color:#4caf50}.jail-label{display:flex;align-items:center;gap:6px;color:#ff7043;font-size:11px;font-weight:700;margin-top:6px;padding:4px 8px;background:#ff70431a;border:1px solid rgba(255,112,67,.25);border-radius:6px;animation:jail-badge-pulse 2s ease-in-out infinite}@keyframes jail-badge-pulse{0%,to{opacity:1}50%{opacity:.7}}.bankrupt-label{display:block;color:#e94560;font-size:12px;font-weight:700;margin-top:4px}.player-properties{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.prop-tag{font-size:10px;padding:2px 6px;background:#0f3460;border-radius:4px;color:#ccc}.game-log-panel{background:transparent;border-radius:0;display:flex;flex-direction:column;height:100%;border:none;position:relative}.game-log-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #1a2744;background:transparent;border-radius:0}.game-log-header h3{margin:0;font-size:13px;color:#89b;letter-spacing:.5px;text-transform:uppercase}.log-count{font-size:10px;color:#556;background:#1a2744;padding:3px 8px;border-radius:10px}.game-log-body{overflow-y:auto;padding:6px 0;scroll-behavior:smooth}.game-log-body::-webkit-scrollbar{width:5px}.game-log-body::-webkit-scrollbar-track{background:transparent}.game-log-body::-webkit-scrollbar-thumb{background:#1a2744;border-radius:3px}.log-turn-group{margin-bottom:2px}.log-entry{display:flex;align-items:center;gap:8px;padding:5px 14px;font-size:11px;color:#9ab;transition:background .15s}.log-entry:hover{background:#ffffff08}.log-player-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.log-icon{font-size:10px;width:14px;text-align:center;flex-shrink:0;opacity:.7}.log-msg{flex:1;line-height:1.4}.log-amount{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;flex-shrink:0}.log-positive{color:#4caf50;background:#4caf501f}.log-negative{color:#ef5350;background:#ef53501f}.log-entry.log-turn-start{padding:8px 14px 6px;font-weight:700;font-size:11px;color:#ccd;gap:6px;position:relative;margin-top:4px;border-top:1px solid #1a2744}.log-turn-group:first-child .log-entry.log-turn-start{border-top:none;margin-top:0}.log-turn-bar{width:3px;height:14px;border-radius:2px;flex-shrink:0}.log-dice .log-icon{color:#64b5f6}.log-doubles .log-icon{color:#e94560}.log-pass-go .log-icon{color:#4caf50}.log-buy .log-icon{color:#42a5f5}.log-rent .log-icon{color:#ffa726}.log-tax .log-icon{color:#ef5350}.log-card .log-icon{color:#ffee58}.log-card-effect .log-icon{color:#ab47bc}.log-jail .log-icon{color:#ff7043}.log-bankrupt .log-icon{color:#ef5350}.log-skip .log-icon{color:#78909c}.log-gameover .log-icon{color:#ffd740}.log-info .log-icon{color:#546e7a}.log-entry.log-pass-go{color:#66bb6a}.log-entry.log-doubles{color:#e94560}.log-entry.log-jail{color:#ff7043}.log-entry.log-bankrupt{color:#ef5350;font-weight:700}.log-entry.log-gameover{color:#ffd740;font-weight:700}.log-entry.log-buy{color:#90caf9}.log-scroll-btn{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:#2196f3;color:#fff;border:none;padding:4px 14px;border-radius:12px;font-size:11px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #2196f366;animation:log-btn-pulse 1.5s ease-in-out infinite;z-index:2}@keyframes log-btn-pulse{0%,to{opacity:.9}50%{opacity:1;box-shadow:0 2px 12px #2196f399}}@media(max-width:1200px){:root{--space-size: clamp(38px, calc((100vh - 100px) / 11), 60px)}}@media(max-width:900px){:root{--space-size: clamp(30px, calc((100vw - 20px) / 11), 50px)}.game-container{flex-direction:column;height:auto;min-height:100vh;overflow-y:auto;overflow-x:hidden;padding:8px;gap:8px}.board{align-self:center;flex-shrink:0}.sidebar{height:auto;min-height:400px;overflow-y:visible;width:100%}.board-center h2{font-size:.9rem;letter-spacing:2px}.grid-panel{min-height:180px}}@media(max-width:768px){:root{--space-size: clamp(28px, calc((100vw - 16px) / 11), 42px)}.game-container{padding:4px;gap:6px}.board{padding:2px;border-radius:6px}.board-center{gap:6px;padding:6px;min-width:80px;min-height:80px}.board-center h2{font-size:.75rem;letter-spacing:1px}.panel-drag-handle{padding:5px 10px;font-size:11px}.panel-content{padding:6px}.grid-toolbar{padding:2px 4px 0}.btn-reset-layout{font-size:10px;padding:3px 8px}.player-panel{padding:8px;border-radius:6px}.player-name,.player-money{font-size:12px}.prop-tag{font-size:9px;padding:1px 4px}.trade-columns{flex-direction:column;gap:6px}.trade-prop-list{max-height:80px}.deed-title{font-size:10px;padding:4px 6px 2px}.deed-body{padding:4px 8px 6px}.deed-row{font-size:9px;padding:1px 3px}.die-container{width:clamp(36px,5vw,52px);height:clamp(36px,5vw,52px)}.dice-pair{gap:12px}.dice-dots{width:36px;height:36px}.dice-dot{width:9px;height:9px}.card-display{width:clamp(120px,16vw,180px);padding:8px;border-radius:8px}.card-icon{font-size:22px;margin-bottom:6px}.card-text{font-size:10px}}@media(max-width:600px){:root{--space-size: clamp(24px, calc((100vw - 12px) / 11), 36px)}.game-container{padding:2px;gap:4px}.board{padding:1px;border-radius:4px}.board-center{gap:4px;padding:4px;min-width:60px;min-height:60px}.board-center h2{font-size:.6rem;letter-spacing:.5px}.space-color{height:6px}.space-owner-badge{width:12px;height:12px;font-size:6px}.house-icon{font-size:6px}.hotel-icon{font-size:8px}.player-token{width:16px;height:16px;font-size:8px;border-width:1px}.sidebar{min-height:300px}.grid-panel{min-height:140px}.panel-drag-handle{padding:4px 8px;font-size:10px}.panel-content{padding:4px}.player-panel{padding:6px}.player-dot{width:10px;height:10px}.player-name,.player-money{font-size:11px}.btn{padding:8px 16px;font-size:12px}.btn-roll{font-size:14px}.log-entry{padding:4px 10px;font-size:10px;gap:6px}.log-icon{font-size:9px;width:12px}.log-amount{font-size:9px;padding:1px 4px}.die-front{transform:translateZ(24px)}.die-back{transform:rotateY(180deg) translateZ(24px)}.die-right{transform:rotateY(90deg) translateZ(24px)}.die-left{transform:rotateY(-90deg) translateZ(24px)}.die-top{transform:rotateX(90deg) translateZ(24px)}.die-bottom{transform:rotateX(-90deg) translateZ(24px)}.die-face{border-radius:8px;border-width:1px}}@media(max-width:380px){:root{--space-size: clamp(20px, calc((100vw - 8px) / 11), 30px)}.space-name,.space-price{font-size:5px}.space-icon{font-size:6px}.board-center h2{display:none}.board-center{min-width:40px;min-height:40px}}:root{--lby-bg: #080c14;--lby-surface: #0e1420;--lby-surface-2: #141c2c;--lby-border: #1c2840;--lby-border-glow: #2a3d60;--lby-gold: #d4a853;--lby-gold-light: #e8c97a;--lby-gold-dim: #8a7030;--lby-text: #c8cdd8;--lby-text-dim: #5a6478;--lby-text-bright: #eef0f4;--lby-accent: #c9373e;--lby-accent-glow: rgba(201, 55, 62, .25);--lby-green: #2d8a4e;--lby-green-glow: rgba(45, 138, 78, .2);--lby-radius: 14px}.lobby-backdrop{min-height:100vh;background:var(--lby-bg);display:flex;align-items:center;justify-content:center;padding:20px;position:relative;overflow:hidden}.lobby-backdrop:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--lby-border) 1px,transparent 1px),linear-gradient(90deg,var(--lby-border) 1px,transparent 1px);background-size:60px 60px;opacity:.15;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,black 20%,transparent 70%);mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,black 20%,transparent 70%)}.lobby-backdrop:after{content:"";position:absolute;top:50%;left:50%;width:700px;height:700px;transform:translate(-50%,-50%) rotate(45deg);border:1px solid var(--lby-gold-dim);opacity:.08;border-radius:20px;pointer-events:none}.lobby{max-width:520px;width:100%;position:relative;z-index:1;animation:lobby-enter .6s cubic-bezier(.16,1,.3,1) both}@keyframes lobby-enter{0%{opacity:0;transform:translateY(24px) scale(.97)}}.lobby-hero{text-align:center;padding:36px 24px 28px;position:relative}.lobby-hero:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,var(--lby-gold-dim),transparent)}.lobby-icon-frame{width:64px;height:64px;margin:0 auto 14px;border:2px solid var(--lby-gold);border-radius:16px;transform:rotate(45deg);display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(212,168,83,.08),transparent);box-shadow:0 0 30px #d4a8531a}.lobby-icon-frame i{transform:rotate(-45deg);font-size:24px;color:var(--lby-gold)}.lobby-hero h1{font-family:Playfair Display,Georgia,serif;font-size:2rem;font-weight:900;letter-spacing:6px;text-transform:uppercase;margin:0;background:linear-gradient(180deg,var(--lby-gold-light) 0%,var(--lby-gold) 50%,var(--lby-gold-dim) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.lobby-subtitle{font-family:DM Sans,sans-serif;font-size:11px;color:var(--lby-text-dim);letter-spacing:3px;text-transform:uppercase;margin-top:6px}.lobby-section{margin:0 16px 14px;background:var(--lby-surface);border:1px solid var(--lby-border);border-radius:var(--lby-radius);overflow:hidden;animation:section-in .5s cubic-bezier(.16,1,.3,1) both}.lobby-section:nth-child(2){animation-delay:.08s}.lobby-section:nth-child(3){animation-delay:.16s}.lobby-section:nth-child(4){animation-delay:.24s}@keyframes section-in{0%{opacity:0;transform:translateY(12px)}}.section-header{display:flex;align-items:center;gap:10px;padding:12px 18px;background:var(--lby-surface-2);border-bottom:1px solid var(--lby-border);font-family:DM Sans,sans-serif}.section-header-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.section-header h2{font-family:DM Sans,sans-serif;font-size:12px;font-weight:700;color:var(--lby-text);text-transform:uppercase;letter-spacing:1.5px;margin:0}.section-body{padding:16px 18px;font-family:DM Sans,sans-serif}.section-header-icon.icon-profile{background:#d4a8531f;color:var(--lby-gold)}.section-header-icon.icon-create{background:var(--lby-green-glow);color:var(--lby-green)}.section-header-icon.icon-join{background:#4287f51f;color:#4287f5}.lby-input{width:100%;padding:11px 14px;background:var(--lby-bg);border:1px solid var(--lby-border);border-radius:10px;color:var(--lby-text-bright);font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.lby-input:focus{border-color:var(--lby-gold);box-shadow:0 0 0 3px #d4a8531a}.lby-input::placeholder{color:var(--lby-text-dim);font-weight:400}.lby-select{padding:9px 12px;background:var(--lby-bg);border:1px solid var(--lby-border);border-radius:10px;color:var(--lby-text-bright);font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;outline:none;cursor:pointer;transition:border-color .2s}.lby-select:focus{border-color:var(--lby-gold)}.color-section-label{font-size:11px;font-weight:600;color:var(--lby-text-dim);text-transform:uppercase;letter-spacing:1px;margin:14px 0 10px;display:block}.color-picker{display:flex;gap:6px;flex-wrap:wrap}.color-swatch{width:36px;height:36px;border-radius:10px;border:2px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.34,1.56,.64,1);padding:0;font-size:12px;color:#fff;position:relative;overflow:hidden}.color-swatch:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent 60%);border-radius:inherit}.color-swatch:hover{transform:scale(1.15) translateY(-2px);box-shadow:0 6px 16px #0006}.color-swatch.selected{border-color:var(--lby-text-bright);transform:scale(1.1);box-shadow:0 0 0 2px var(--lby-bg),0 0 0 4px var(--lby-text-bright),0 4px 16px #0000004d}.color-swatch .fa-check{filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));font-size:13px;position:relative}.profile-preview{display:flex;align-items:center;gap:14px;margin-top:16px;padding:14px 16px;background:var(--lby-bg);border:1px solid var(--lby-border);border-radius:12px;position:relative;overflow:hidden}.profile-preview:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--lby-gold);border-radius:0 2px 2px 0}.preview-token{width:42px;height:42px;border-radius:50%;border:3px solid rgba(255,255,255,.9);color:#fff;font-family:Playfair Display,Georgia,serif;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0006,inset 0 2px 4px #ffffff26;flex-shrink:0;position:relative}.preview-token:after{content:"";position:absolute;inset:-3px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%);animation:token-shine 3s linear infinite}@keyframes token-shine{to{transform:rotate(360deg)}}.preview-info{display:flex;flex-direction:column;gap:2px}.preview-name{font-size:16px;font-weight:700;color:var(--lby-text-bright)}.preview-ready{font-size:11px;color:var(--lby-gold);font-weight:500}.create-options{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.option-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.option-label{font-size:13px;color:var(--lby-text);font-weight:500}.player-count-select{display:flex;gap:4px}.player-count-btn{width:36px;height:36px;border-radius:8px;border:1px solid var(--lby-border);background:var(--lby-bg);color:var(--lby-text-dim);font-family:DM Sans,sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;padding:0;display:flex;align-items:center;justify-content:center}.player-count-btn:hover{border-color:var(--lby-border-glow);color:var(--lby-text);background:var(--lby-surface-2)}.player-count-btn.active{background:var(--lby-green);border-color:var(--lby-green);color:#fff;box-shadow:0 2px 8px var(--lby-green-glow)}.checkbox-row{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.lby-checkbox{width:18px;height:18px;border-radius:5px;border:2px solid var(--lby-border-glow);background:var(--lby-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;cursor:pointer}.lby-checkbox.checked{background:var(--lby-green);border-color:var(--lby-green)}.lby-checkbox i{font-size:10px;color:#fff}.checkbox-text{font-size:12px;color:var(--lby-text-dim);line-height:1.3}.lby-btn{width:100%;padding:12px 20px;border:none;border-radius:10px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .2s cubic-bezier(.34,1.56,.64,1);letter-spacing:.5px;position:relative;overflow:hidden}.lby-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,transparent 50%);pointer-events:none}.lby-btn:hover:not(:disabled){transform:translateY(-2px)}.lby-btn:active:not(:disabled){transform:translateY(0)}.lby-btn:disabled{opacity:.35;cursor:not-allowed}.btn-create{background:linear-gradient(135deg,#2d8a4e,#24703f);color:#d4f5e0;box-shadow:0 4px 16px var(--lby-green-glow)}.btn-create:hover:not(:disabled){box-shadow:0 6px 24px #2d8a4e59}.btn-join-code{background:linear-gradient(135deg,#36c,#2a55aa);color:#d0e0ff;white-space:nowrap;flex-shrink:0;width:auto;padding:12px 20px}.btn-join-code:hover:not(:disabled){box-shadow:0 6px 20px #3366cc4d}.btn-refresh{background:var(--lby-surface-2);color:var(--lby-text);border:1px solid var(--lby-border);font-size:12px;padding:10px;font-weight:600}.btn-refresh:hover:not(:disabled){background:var(--lby-border);border-color:var(--lby-border-glow)}.join-row{display:flex;gap:8px;margin-bottom:12px}.join-row .lby-input{flex:1;font-family:DM Sans,monospace;letter-spacing:1px}.match-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.match-card{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--lby-bg);border:1px solid var(--lby-border);border-radius:10px;transition:border-color .2s,background .2s}.match-card:hover{border-color:var(--lby-border-glow);background:var(--lby-surface-2)}.match-info{display:flex;flex-direction:column;gap:3px;min-width:0}.match-id{font-family:DM Sans,monospace;font-size:12px;color:var(--lby-text);font-weight:600;display:flex;align-items:center;gap:6px}.match-id i{color:var(--lby-gold-dim);font-size:11px}.match-players-info{display:flex;align-items:center;gap:8px}.match-player-count{font-size:11px;color:var(--lby-text-dim)}.match-player-dots{display:flex;gap:3px}.match-dot{width:8px;height:8px;border-radius:50%}.match-dot.filled{background:var(--lby-green);box-shadow:0 0 6px var(--lby-green-glow)}.match-dot.empty{background:var(--lby-border)}.match-names{font-size:10px;color:var(--lby-text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-join-match{background:linear-gradient(135deg,#36c,#2a55aa);color:#d0e0ff;border:none;border-radius:8px;padding:8px 16px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.btn-join-match:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3366cc4d}.btn-join-match:disabled{opacity:.35;cursor:not-allowed}.no-matches{font-size:12px;color:var(--lby-text-dim);text-align:center;margin-top:12px;padding:20px 16px;border:1px dashed var(--lby-border);border-radius:10px;line-height:1.5}.lobby-error{margin:0 16px 14px;padding:12px 16px;background:#c9373e14;border:1px solid rgba(201,55,62,.25);border-radius:var(--lby-radius);color:#e8666c;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;display:flex;align-items:center;gap:10px;animation:error-shake .4s cubic-bezier(.36,.07,.19,.97) both}@keyframes error-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-3px)}40%,60%{transform:translate(3px)}}.lobby-error i{font-size:16px;flex-shrink:0}.lobby-footer{text-align:center;padding:16px;font-family:DM Sans,sans-serif;font-size:10px;color:var(--lby-text-dim);letter-spacing:2px;text-transform:uppercase}@media(max-width:540px){.lobby-hero h1{font-size:1.5rem;letter-spacing:4px}.lobby-section{margin:0 10px 10px}.section-body{padding:14px}.color-swatch{width:32px;height:32px;border-radius:8px}.preview-token{width:36px;height:36px;font-size:16px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:#1a1a2e;color:#eee;min-height:100vh}#root{min-height:100vh}button{cursor:pointer;border:none;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:600;transition:opacity .2s}button:hover{opacity:.85}button:disabled{opacity:.4;cursor:not-allowed}input,select{padding:8px 12px;border-radius:6px;border:1px solid #444;background:#16213e;color:#eee;font-size:14px}
