*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#0a5a8a;min-height:100vh;overflow-x:hidden;overflow-y:auto}.container{margin:0;min-height:100vh}h1{font-size:1.6em;margin-bottom:4px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{opacity:1}.lobby-number-stepper input::-webkit-inner-spin-button,.lobby-number-stepper input::-webkit-outer-spin-button{opacity:0;pointer-events:none}.lobby-number-stepper input[type=number]{-moz-appearance:textfield}.game-screen{min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:flex;flex-direction:column}.game-wrapper{position:relative;width:100%;flex:1;min-height:0;display:flex;flex-direction:column}.game-wrapper>.board-container{flex:1;min-height:0;width:100%;height:100%}header{position:fixed;top:0;left:0;right:0;text-align:center;color:#fff;padding:8px 0;z-index:-1;pointer-events:none}header>*{pointer-events:auto}.connection-status{display:none;padding:8px 16px;background:#fff3;border-radius:20px;font-size:.9em}.connection-status.visible{display:inline-block}.game-code-display{padding:2px 20px;background:#ffffff4d;border-radius:12px;display:inline-block}.phase-status{margin-top:10px;padding:12px 24px;background:#fff6;border-radius:12px;font-size:1.1em;font-weight:700;display:inline-block}.panel{background:#ffffffeb;border-radius:12px;padding:15px;box-shadow:0 8px 32px #0003;position:fixed;z-index:50}.action-panel{top:15px;left:15px;width:260px;max-height:50vh;overflow-y:auto;background:transparent;box-shadow:none}.action-panel h2,.players-panel h2,.resources-panel h2,.log-panel h3{font-size:1.1em;margin-bottom:10px;color:#667eea}.action-panel .actions{display:grid;gap:10px;grid-template-columns:repeat(3,70px);grid-template-rows:repeat(2,70px);grid-auto-flow:row;justify-content:start}.action-panel .actions .action-btn{width:70px;height:70px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:30px;line-height:1;position:relative}.action-panel .actions .action-btn:focus-visible{outline:2px solid rgba(255,255,255,.9);outline-offset:2px}.action-btn-count{position:absolute;bottom:2px;right:2px;min-width:16px;height:16px;padding:0 3px;border-radius:50%;background:#fff;color:#333;font-size:.4em;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000004d;z-index:10;pointer-events:none}.right-panels{position:fixed;right:15px;bottom:15px;display:flex;flex-direction:column;gap:10px;z-index:50}.right-panels .panel{position:static}.right-panels .players-panel{width:260px;max-height:40vh;overflow-y:auto;padding:5px}.right-panels .action-panel{width:260px;max-height:none;overflow:visible}.players-row{gap:6px}.players-row:last-child{margin-bottom:0}.players-row .player-card{flex:1;min-width:0}.board-container{background:linear-gradient(180deg,#1a6fb5,#1e88c7,#1594d4,#0d7ebf,#0a5a8a);position:relative;overflow:hidden;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#boardCanvas{display:block;cursor:grab;width:100%;height:100%;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.dice-panel{width:260px;padding:0;text-align:center;background:transparent;box-shadow:none}.dice{display:inline-flex;gap:10px;margin:10px 0}.dice.clickable{cursor:pointer}.dice.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.dice.enabled{animation:dicePulse 2s ease-in-out infinite}@keyframes dicePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.die{width:75px;height:75px;background:#fff;border:2px solid #333;border-radius:8px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:6px}.pip{width:10px;height:10px;background:#333;border-radius:50%;align-self:center;justify-self:center}.discard-panel,.monopoly-panel,.year-of-plenty-panel,.trade-panel{bottom:10vh;left:15px;margin-bottom:20px;background:#000000d9;padding:10px;min-width:55vw;overflow:hidden;display:none}.monopoly-panel,.year-of-plenty-panel{min-width:55vw}.trade-panel{max-width:90vw}.monopoly-panel.active,.discard-panel.active,.year-of-plenty-panel.active,.trade-panel.active{display:block}.monopoly-cancel-btn,.year-of-plenty-cancel-btn,.trade-cancel-btn{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:0;border:2px solid white;border-radius:50%;background:transparent;color:#fff;font-size:1.1em;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;z-index:1}.monopoly-cancel-btn:hover,.year-of-plenty-cancel-btn:hover,.trade-cancel-btn:hover{background:#fff3}.monopoly-confirm-btn,.year-of-plenty-confirm-btn,.discard-confirm-btn{padding:12px 20px;border:none;border-radius:8px;background:#667eea;color:#fff;font-weight:700;font-size:1.2em;cursor:pointer;transition:all .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:50px;height:50px}.monopoly-confirm-btn:hover:not(:disabled),.year-of-plenty-confirm-btn:hover:not(:disabled),.discard-confirm-btn:hover:not(:disabled){background:#5568d3;transform:translateY(-1px);box-shadow:0 4px 12px #0000004d}.monopoly-confirm-btn:disabled,.year-of-plenty-confirm-btn:disabled,.discard-confirm-btn:disabled{background:#ffffff59;color:#fffc;cursor:not-allowed}.discard-panel-content{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:16px;flex-shrink:0}.discard-panel-content>h2{color:#fff}.discard-main{display:flex;align-items:center;gap:16px;width:100%}.discard-panel .resource-display{flex:1;min-width:0;min-height:116px}.discard-panel .resources{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.discard-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:8px;flex-shrink:0}.discard-label{color:#fff;font-weight:600;font-size:.9em;text-align:right}@keyframes slideUpIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.discard-panel .resource-card{animation:slideUpIn .2s ease-out}.monopoly-panel-content{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex-shrink:0}.monopoly-panel-content>h2{color:#fff}.monopoly-main{display:flex;align-items:center;gap:16px;width:100%}.monopoly-main .resource-display{flex:1;min-width:0}.monopoly-selected{display:flex;flex-direction:column;min-width:120px;min-height:96px;padding:8px;background:#ffffff1a;border-radius:6px}.monopoly-panel .resource-card.selected{box-shadow:0 0 0 3px #fff;outline:2px solid rgba(255,255,255,.8);outline-offset:2px}.year-of-plenty-panel-content{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex-shrink:0}.year-of-plenty-panel-content>h2{color:#fff}.year-of-plenty-main{display:flex;align-items:center;gap:16px;width:100%}.year-of-plenty-main .resource-display{flex:1;min-width:0}.trade-give-selected,.trade-receive-selected,.year-of-plenty-selected{display:flex;flex-direction:column;min-width:200px;min-height:116px;padding:8px;background:#ffffff1a;border-radius:6px}.trade-panel-content{display:flex;flex-direction:column;gap:10px}.trade-panel-content>h2{color:#fff;margin:0}.trade-panel-desc{color:#ffffffe6;font-size:.9em;margin:0 0 4px}.trade-section-label{color:#fff;font-weight:700;font-size:.85em;margin-bottom:6px}.trade-receive-choices .resource-display,.trade-receive-row .resource-display,.trade-give-row .resource-display{display:flex;gap:8px;flex-direction:column}.trade-give-row .resource-display{flex:1;min-width:120px}.trade-actions{display:flex;gap:8px;align-items:center;margin:12px 25% 0}.trade-propose-btn{padding:10px 16px;border:none;border-radius:8px;background:#667eea;color:#fff;font-weight:700;cursor:pointer;flex:1}.trade-propose-btn:hover:not(:disabled){background:#5568d3}.trade-bank-btn{padding:10px 16px;border:none;border-radius:8px;background:#2d8a4e;color:#fff;font-weight:700;cursor:pointer;flex:1}.trade-bank-btn:hover:not(:disabled){background:#247a42}.resources-panel{bottom:15px;left:15px;right:290px;background:#000000d9;padding:10px;height:10vh;max-height:120px;overflow:hidden}.resource-display{padding:0}.resources{display:flex;gap:8px}.card-stack{display:flex;position:relative}.resource-stack-count{position:absolute;bottom:4px;right:4px;min-width:18px;height:18px;padding:0 4px;border-radius:50%;background:#fff;color:#333;font-size:.7em;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000004d;z-index:10}.resource-card{aspect-ratio:5/7;height:8vh;border-radius:6px;border:2px solid rgba(255,255,255,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 2px 6px #00000040;cursor:default;flex-shrink:0;max-height:100px;position:relative;overflow:hidden}.card-stack .resource-card:not(:first-child){margin-left:-53px}.resource-card .card-icon{font-size:1.6em;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.resource-card .card-label{font-size:.55em;font-weight:700;color:#fffffff2;text-align:center;text-transform:uppercase;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.5);margin-top:2px}.resource-card.dev-card .card-label{font-size:.59em}.resource-card.clickable,.resource-card.selectable{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.resource-card.clickable:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000004d}.resource-card.selected-for-discard{display:none}.log-panel{top:15px;right:15px;width:280px;max-height:30vh;overflow-y:auto}.player-card{background:#fff;padding:6px 8px;border-radius:6px;margin-bottom:6px;border:3px solid #e0e0e0;box-shadow:0 1px 2px #00000014;transition:all .2s ease}.player-card.active{border:4px solid #667eea;box-shadow:0 0 0 2px #667eea33,0 2px 8px #667eea4d}.player-name-block{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.player-name-block:last-child{margin-bottom:0}.player-card:not(:has(.player-stats-compact)) .player-name-block{margin-bottom:0}.player-name-row{display:flex;align-items:center;gap:6px}.player-name-block .player-name-row{margin-bottom:0}.player-name-block .ready-badge{margin-left:0;align-self:flex-start}.player-color-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(0,0,0,.15);flex-shrink:0}.player-name-text{flex:1;font-weight:600;font-size:.95em;color:#212121;text-overflow:ellipsis;overflow:hidden}.player-name-block .ready-badge{font-size:.65em;padding:2px 6px}.ready-badge{display:inline-block;font-size:.75em;padding:2px 8px;border-radius:10px;margin-left:8px;font-weight:600}.ready-badge.ready{background:#c8e6c9;color:#2e7d32}.ready-badge.not-ready{background:#ffcdd2;color:#c62828}.player-stats-compact{display:flex;align-items:center;gap:6px}.stat-vp{display:flex;align-items:center;gap:2px;background:linear-gradient(135deg,#fff9c4,#fff59d);padding:4px;border-radius:6px;border:1px solid rgba(255,193,7,.3);min-width:42px;justify-content:center}.stat-vp-icon{font-size:.9em}.stat-vp-value{font-size:1em;font-weight:700;color:#f57f17;line-height:1}.stat-row{display:flex;gap:8px;flex:1;justify-content:flex-end}.stat-compact{display:flex;align-items:center;gap:3px;font-size:.85em;color:#424242}.stat-compact-icon{font-size:.95em;opacity:.8}.stat-compact-value{font-weight:600;color:#212121;min-width:12px;text-align:center}.stat-compact.stat-badge{background:linear-gradient(135deg,#fff9c4,#fff59d);padding:4px 6px;border-radius:6px;border:1px solid rgba(255,193,7,.3);min-width:36px;justify-content:center}.stat-compact.stat-badge .stat-compact-value{color:#f57f17}.stat-compact.stat-over-limit{background:#ffc8c859;padding:4px 6px;border-radius:6px;border:1px solid rgba(244,67,54,.25);justify-content:center}.victory-points{font-size:1.2em;font-weight:700;color:#667eea}.btn{padding:12px;border:none;border-radius:8px;font-size:.95em;font-weight:600;cursor:pointer;transition:all .2s;text-align:center}.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#667eea;color:#fff}.btn-secondary{background:#48bb78;color:#fff}.btn-danger{background:#f56565;color:#fff}.btn-sm{padding:6px 12px;font-size:.85em}.profile-panel{background:#fff;padding:10px 15px;border-radius:8px;text-align:center;position:fixed;top:15px;right:15px;display:flex;flex-direction:column;align-content:center;gap:.75rem}.info-panel{background:#fff;padding:10px 15px;border-radius:8px;text-align:center;position:fixed;top:15px;left:15px;z-index:50;transition:all .4s}.game-log{max-height:200px;overflow-y:auto}.log-entry{font-size:.85em;padding:3px 0;color:#666}.log-turn-divider{height:1px;min-height:1px;border:none;background:#c9c9c9;margin:8px 0;padding:0}.log-entry-resources{display:flex;flex-wrap:wrap;align-items:center;gap:2px}.log-resource-icon{font-size:1.1em;line-height:1;display:inline-block}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:1000;align-items:center;justify-content:center}.modal.active{display:flex}.modal-content{background:#fff;padding:30px;border-radius:12px;max-width:500px;width:90%;box-shadow:0 8px 32px #0003}.modal h2{margin-bottom:20px;color:#667eea}.trade-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;margin:20px 0}.trade-section h4{margin-bottom:10px;font-size:.9em;color:#666}.trade-resources{display:grid;gap:8px}.trade-resource{display:flex;align-items:center;justify-content:space-between;padding:8px;background:#f8f9fa;border-radius:6px}.trade-controls{display:flex;gap:5px;align-items:center}.trade-controls button{width:28px;height:28px;border:none;background:#667eea;color:#fff;border-radius:4px;cursor:pointer;font-weight:700}.trade-controls span{min-width:30px;text-align:center;font-weight:700}.setup-screen{background:#fff;border-radius:12px;padding:40px;max-width:500px;margin:100px auto;box-shadow:0 8px 32px #0000001a}.setup-screen h2{color:#667eea;margin-bottom:20px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#333}.form-group input,.form-group select{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1em}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea}.setup-section{margin-top:24px;padding-top:24px;border-top:1px solid #e8e8e8}.setup-section h3{font-size:1em;color:#555;margin-bottom:14px;font-weight:600}.join-hint{font-size:.9em;color:#666;margin:-4px 0 12px}.join-by-code label,.join-from-list label{display:block;margin-bottom:8px;font-weight:600;color:#333;font-size:.95em}.game-code-row{display:flex;gap:10px;margin-bottom:16px}.game-code-row input{flex:1;padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1em;letter-spacing:1px;text-transform:uppercase}.game-code-row input:focus{outline:none;border-color:#667eea}.join-from-list{margin-top:16px}.game-list{background:#f8f9fa;border-radius:8px;border:1px solid #e8e8e8;max-height:200px;overflow-y:auto}.game-list-empty{padding:16px;text-align:center;color:#888;font-size:.9em}.game-list ul{list-style:none;margin:0;padding:8px}.game-list-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;margin-bottom:4px;background:#fff;border:1px solid #eee}.game-list-item:last-child{margin-bottom:0}.game-list-code{font-weight:700;letter-spacing:1px;color:#667eea;min-width:60px}.game-list-players,.game-list-meta{flex:1;font-size:.9em;color:#666}.lobby-panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:#fffffffa;padding:24px 28px;border-radius:12px;box-shadow:0 12px 40px #00000040;text-align:center;max-width:90vw;width:380px;z-index:100}.lobby-panel-title{font-size:1.4em;color:#333;margin:0 0 4px}.lobby-panel-subtitle{font-size:.9em;color:#666}.lobby-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px}.lobby-actions .btn{margin:0}.lobby-status{font-size:.9em;color:#666;margin:8px 0;text-align:center}.lobby-settings{padding:8px;background:#f5f5f5;border-radius:8px;border:1px solid #e8e8e8;text-align:left}.lobby-panel .lobby-settings{margin-top:8px}.lobby-settings h4{font-size:.95em;color:#555;margin-bottom:10px;text-align:center}.lobby-setting-row{margin-bottom:8px;text-align:center}.lobby-setting-row label{display:block;font-size:.9em;color:#333;margin-bottom:4px}.lobby-setting-row input{width:80px;padding:6px 10px;border:2px solid #e0e0e0;border-radius:6px;font-size:1em}.lobby-setting-row input:disabled{background:#e8e8e8;color:#666;cursor:not-allowed}.lobby-number-stepper{display:inline-flex;align-items:center;gap:6px;justify-content:center}.lobby-number-stepper input{width:3.5em;min-width:48px;text-align:center}.lobby-stepper-btn{flex-shrink:0;min-width:44px;min-height:44px;padding:0 12px;border:2px solid #e0e0e0;border-radius:6px;background:#f5f5f5;color:#333;font-size:1.4em;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.lobby-stepper-btn:hover:not(:disabled){background:#e8e8e8;border-color:#ccc}.lobby-stepper-btn:active:not(:disabled){background:#ddd}.lobby-stepper-btn:disabled{opacity:.5;cursor:not-allowed}.game-over-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;z-index:2000;align-items:center;justify-content:center}.game-over-overlay.active{display:flex}.game-over-content{background:#fff;padding:20px 40px;border-radius:16px;text-align:center;box-shadow:0 12px 48px #0000004d;width:50%}.game-over-content h2{font-size:2em;color:#667eea;margin-bottom:10px}.game-over-content .game-over-viewing{font-size:.85em;color:#888;margin:-4px 0 8px}.game-over-content .winner-name{font-size:1.5em;font-weight:700;color:#333;margin-bottom:20px}.dice-roll-graph{padding-top:20px;max-width:350px;margin:24px auto 0}.dice-roll-graph-title{font-size:.95em;color:#555;margin-bottom:10px}.dice-roll-graph-inner{display:flex;align-items:stretch;gap:8px}.dice-roll-y-axis{position:relative;width:2em;min-height:150px;height:150px;font-size:.75em;color:#666;text-align:right;padding-right:6px}.dice-roll-y-tick-row{position:absolute;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:flex-end;align-items:center;pointer-events:none}.dice-roll-y-tick{line-height:1}.dice-roll-chart-area{flex:1;min-width:0;display:flex;flex-direction:column}.dice-roll-chart-with-axes{position:relative;height:150px;min-height:150px;border-left:1px solid #999;display:flex;flex-direction:column}.dice-roll-y-grid{position:absolute;inset:0 0 1px;display:flex;flex-direction:column;pointer-events:none;border-top:1px dashed #bbb}.dice-roll-y-grid-line{flex:1;min-height:0;border-bottom:1px dashed #bbb}.dice-roll-bars{position:relative;z-index:1;display:flex;align-items:flex-end;gap:2px;height:100%;min-height:150px}.dice-roll-bar-wrap{flex:1;min-width:0;height:100%;display:flex;align-items:flex-end;justify-content:center}.dice-roll-bar{width:100%;max-width:24px;min-height:2px;background:linear-gradient(180deg,#667eea,#764ba2);border-radius:4px 4px 0 0;transition:height .2s ease}.dice-roll-x-axis{display:flex;justify-content:space-between;margin-top:0;padding-top:4px;font-size:.75em;color:#666;border-top:1px solid #999}.dice-roll-x-tick{flex:1;text-align:center;min-width:0}@media(max-width:480px){.setup-screen{margin:100px 20px}.action-panel{width:160px;font-size:.8em;padding:0}.right-panels{left:max(0px,env(safe-area-inset-left));right:max(0px,env(safe-area-inset-right));width:auto;flex-direction:column;align-items:stretch;bottom:calc(80px + max(0px,env(safe-area-inset-bottom)));padding:0 max(8px,env(safe-area-inset-left))}.right-panels .dice-panel{flex:0 0 auto;width:auto}.right-panels .action-panel{flex:0 0 auto;width:auto;display:flex;flex-direction:column;justify-content:flex-end}.right-panels .players-panel{width:100%;max-width:100%;margin-left:0;margin-right:0}.dice-panel{width:auto}.action-panel .actions .action-btn{width:40px;height:40px;font-size:1.1rem}.action-btn-count{min-width:12px;height:12px}.resources-panel{left:max(0px,env(safe-area-inset-left));right:max(0px,env(safe-area-inset-right));width:auto;height:72px;min-height:72px;bottom:max(0px,env(safe-area-inset-bottom));padding:6px}.log-panel{top:max(5px,env(safe-area-inset-top));right:max(5px,env(safe-area-inset-right));width:160px;max-height:20vh;font-size:.75em;padding:8px}.info-panel{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:auto;width:180px;font-size:.85em}.info-panel--centered{left:50%;right:auto;max-width:95vw;padding:10px 15px}.discard-panel,.monopoly-panel,.year-of-plenty-panel,.trade-panel{left:5px;right:5px;padding:8px;z-index:100}.action-btn{min-width:48px;min-height:48px;padding:12px;font-size:1.3em}.resource-card{min-width:48px;min-height:48px}.btn{min-height:48px;padding:12px 18px;font-size:.8em}header{padding:4px 0}h1{font-size:1.1em;margin-bottom:2px}.game-code-display{font-size:.75em;padding:2px 10px}.phase-status{font-size:.9em;padding:8px 16px;margin-top:6px}.resources{gap:4px}.card-stack{gap:2px}.resource-card{height:61px;width:44px;min-width:44px;min-height:41px}.resource-card .card-icon,.resource-card.dev-card .card-icon{font-size:1em}.resource-card .card-label,.resource-card.dev-card .card-label{font-size:.35em}.card-stack .resource-card:not(:first-child){margin-left:-41px}.dice-panel .dice{margin:0;gap:4px}.dice-panel .dice .die{width:50px;height:50px}.players-row{display:flex}.game-over-content{padding:10px 20px;width:75%}}@media(max-width:768px){.setup-screen{margin:100px 20px}.action-panel{width:200px;font-size:.9em;padding:0}.right-panels{right:10px;bottom:10px;gap:8px}.right-panels .players-panel{width:200px;max-height:35vh;font-size:.85em}.right-panels .action-panel,.dice-panel{width:200px}.resources-panel{left:max(0px,env(safe-area-inset-left));right:max(0px,env(safe-area-inset-right));bottom:10px;width:auto;height:72px;min-height:72px;max-height:none;padding:8px}.right-panels{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));width:auto;flex-direction:row;align-items:stretch;gap:8px;bottom:calc(80px + max(0px,env(safe-area-inset-bottom)))}.right-panels .dice-panel{flex:0 0 auto;width:auto}.right-panels .action-panel{flex:0 0 auto;width:auto;min-width:0;display:flex;flex-direction:column;justify-content:flex-end}.right-panels .players-panel{flex:1 1 0;min-width:0;width:auto;max-height:none;overflow:auto}.action-panel .actions{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;gap:6px;grid-template-columns:unset;grid-template-rows:unset}.action-panel .actions .action-btn{width:44px;height:44px;font-size:1.25rem;flex-shrink:0}.action-btn-count{min-width:14px;height:14px;font-size:.5em}.right-panels .players-panel #playersList,.players-panel #playersList{display:flex;flex-direction:column;gap:6px}.right-panels .players-panel .player-card,.players-panel .player-card{margin-bottom:0}.log-panel{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));width:200px;max-height:25vh;font-size:.85em;padding:8px}.info-panel{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:auto;width:180px;font-size:.85em}.info-panel{top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left))}.resources-panel{bottom:max(0px,env(safe-area-inset-bottom))}.right-panels{right:max(10px,env(safe-area-inset-right));bottom:calc(80px + max(0px,env(safe-area-inset-bottom)))}.resources-panel{left:max(0px,env(safe-area-inset-left))}.game-over-content{padding:10px 20px;width:75%}}@media screen and (max-width:768px)and (orientation:portrait){.setup-screen{margin:100px 20px}.info-panel{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:auto;width:180px;font-size:.85em}.log-panel{width:180px;max-height:22vh;font-size:.8em;padding:8px}.resources-panel{left:max(0px,env(safe-area-inset-left));right:max(0px,env(safe-area-inset-right));width:auto;height:72px;min-height:72px;padding:6px 8px}.right-panels{left:max(0px,env(safe-area-inset-left));right:max(0px,env(safe-area-inset-right));width:auto;flex-direction:column;align-items:stretch;bottom:calc(80px + max(0px,env(safe-area-inset-bottom)));padding:0 max(8px,env(safe-area-inset-left))}.right-panels .players-panel{width:100%;max-width:100%;margin-left:0;margin-right:0;height:auto;max-height:none;overflow:visible;flex-shrink:0;flex-grow:0;display:block}.right-panels .players-panel #playersList,.players-panel #playersList{display:flex;flex-direction:column;gap:6px;height:auto;overflow:visible}.year-of-plenty-main{flex-direction:column;align-items:stretch}.year-of-plenty-main .resource-display{flex:none;width:100%}.year-of-plenty-panel .year-of-plenty-selected{width:100%;min-width:0}.monopoly-main{flex-direction:column;align-items:stretch}.monopoly-main .resource-display{flex:none;width:100%}.monopoly-panel .monopoly-selected{width:100%;min-width:0}.right-panels .players-panel .player-card,.players-panel .player-card{padding:6px 8px;border-radius:4px;border-width:2px;margin-bottom:0}.players-panel .player-name-block{margin-bottom:4px;gap:2px}.players-panel .player-name-text{font-size:.8em}.players-panel .player-color-dot{width:8px;height:8px}.players-panel .player-name-block .ready-badge{font-size:.55em;padding:1px 4px}.players-panel .player-stats-compact{gap:6px}.players-panel .stat-vp{padding:2px 5px;border-radius:4px;min-width:36px}.players-panel .stat-vp-value{font-size:.9em}.players-panel .stat-compact{font-size:.75em}.players-panel .stat-compact-icon{font-size:.85em}.players-panel .stat-row{gap:4px}.discard-panel,.monopoly-panel,.year-of-plenty-panel,.trade-panel{left:10px;right:10px;min-width:auto;max-width:calc(100vw - 20px);bottom:calc(55px + max(0px,env(safe-area-inset-bottom)));z-index:100}.discard-panel-content .resource-display{min-height:61px}.trade-give-selected,.trade-receive-selected,.year-of-plenty-selected{min-height:77px}.trade-actions{margin:12px 10% 0}.players-row{display:flex}}@media screen and (max-width:1200px)and (orientation:landscape){.setup-screen{margin:100px 20px}.lobby-panel{inset:15px 50% 15px 20px;width:auto;max-width:100%;transform:none;padding:8px 10px}.lobby-panel-title{font-size:1.1em}.lobby-settings{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.lobby-settings h4{margin-bottom:5px}.lobby-settings h4,.lobby-settings .lobby-status{grid-column:1 / -1}.lobby-settings .lobby-setting-row{margin-bottom:0}.info-panel{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:auto;width:180px;font-size:.85em}.log-panel{width:180px;max-height:35vh;padding:8px}.log-panel h3{font-size:.9em}.resources-panel{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));width:auto;height:72px;min-height:72px;bottom:max(8px,env(safe-area-inset-bottom))}.right-panels{left:auto;right:max(0px,env(safe-area-inset-right));width:auto;flex-direction:row;align-items:stretch;bottom:calc(80px + max(0px,env(safe-area-inset-bottom)))}.right-panels .players-panel{flex:1 1 0;max-height:45vh;overflow:auto;margin-left:auto;margin-right:10px;margin-bottom:5px;width:auto;grid-template-columns:1fr 1fr;grid-column-gap:5px;grid-row-gap:5px}.right-panels .dice-panel{flex:0 0 auto;width:auto;display:flex;flex-direction:column;justify-content:flex-end;padding:4px}.dice-panel .dice{margin:0;gap:4px}.dice-panel .dice .die{width:50px;height:50px}.right-panels .action-panel{flex:0 0 auto;width:auto;display:flex;flex-direction:column;justify-content:flex-end;padding:4px}.action-panel .actions{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center;gap:6px;grid-template-columns:unset;grid-template-rows:unset;margin-top:auto}.right-panels .players-panel #playersList,.players-panel #playersList{display:flex;flex-direction:column;gap:6px}.right-panels .players-panel .player-card,.players-panel .player-card{margin-bottom:0;padding:6px 8px;border-radius:4px;border-width:2px}.players-row{display:flex}.players-panel .player-name-block{margin-bottom:4px;gap:2px}.players-panel .player-name-text{font-size:.8em}.players-panel .player-color-dot{width:8px;height:8px}.players-panel .player-name-block .ready-badge{font-size:.55em;padding:1px 4px}.players-panel .player-stats-compact{gap:6px}.players-panel .stat-vp{padding:2px 5px;border-radius:4px;min-width:36px}.players-panel .stat-vp-value{font-size:1em}.players-panel .stat-compact{font-size:.75em}.players-panel .stat-compact-icon{font-size:.85em}.players-panel .stat-row{gap:4px}.action-panel .actions .action-btn{width:35px;height:35px;font-size:1.1rem}.action-btn-count{min-width:12px;height:12px}.info-panel--centered{left:50%;right:auto;transform:translate(-50%,-50%);max-width:90vw}.discard-panel,.monopoly-panel,.year-of-plenty-panel,.trade-panel{left:10px;right:10px;min-width:auto;max-width:calc(100vw - 20px);bottom:calc(65px + max(0px,env(safe-area-inset-bottom)));z-index:100}.discard-panel-content .resource-display{min-height:59px}.trade-panel-content{display:grid;grid-template-columns:1fr 1fr;gap:10px}.trade-panel-content>h2,.trade-panel-content .trade-panel-desc,.trade-panel-content .trade-receive-choices,.trade-panel-content .trade-actions{grid-column:1 / -1}.trade-panel-content .trade-receive-row{grid-column:1}.trade-panel-content .trade-give-row{grid-column:2}.action-btn{min-width:44px;min-height:44px;padding:10px;font-size:1.2em}.resource-card{min-width:44px;min-height:53px}.resource-card .card-icon,.resource-card.dev-card .card-icon{font-size:1em}.resource-card .card-label,.resource-card.dev-card .card-label{font-size:.35em}.card-stack .resource-card:not(:first-child){margin-left:-36px}.btn{min-height:44px;padding:10px 16px;font-size:1em}header{padding:6px 0}h1{font-size:1.3em}.game-code-display{font-size:.85em;padding:2px 12px}.trade-give-selected,.trade-receive-selected,.year-of-plenty-selected,.monopoly-selected{min-height:69px}}
