@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap";*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.app-container{position:relative;width:100vw;height:100vh;overflow:hidden;padding-bottom:70px}.game-info{position:absolute;top:1rem;left:1rem;z-index:10;background-color:#000c;padding:.75rem;border-radius:.25rem;box-shadow:0 0 10px #0f03;display:flex;flex-direction:column;align-items:flex-start;font-family:"Press Start 2P",sans-serif;transition:all .3s ease}.game-info.collapsed{padding:.5rem}.game-info.collapsed .stats{display:none}.game-info h1{font-family:"Press Start 2P",sans-serif;font-size:.7rem;font-weight:700;color:#0f0;margin-bottom:.5rem;text-align:left;line-height:1.2;text-shadow:0 0 5px rgba(0,255,0,.5);cursor:pointer;-webkit-user-select:none;user-select:none}.game-info.collapsed h1{margin-bottom:0}.stats{display:flex;flex-direction:column;gap:.25rem;width:100%}.stat-box{background-color:#0009;padding:.4rem .75rem;border-radius:.25rem;box-shadow:0 0 5px #0f03;min-width:180px;cursor:pointer;transition:all .2s;font-size:.7rem;color:#0f0;display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(0,255,0,.2);text-shadow:0 0 3px rgba(0,255,0,.3)}.stat-box:hover{background-color:#00ff001a;border-color:#0f0;box-shadow:0 0 8px #0f06}.stat-box:last-child{background-color:#fff;border:none;box-shadow:none}.stat-box:last-child:hover{background-color:#fff;border:none;box-shadow:none}.music-toggle .switch{margin-left:.5rem}.map-container{position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.mapboxgl-canvas-container{position:absolute;width:100%;height:100%;top:0;left:0}.mapboxgl-canvas{z-index:1}.mapboxgl-marker{position:absolute;z-index:2}.mapboxgl-ctrl-group{z-index:5}.marker{background-color:#1a365d;color:#fff;padding:.25rem .5rem;border-radius:.25rem;cursor:pointer;border:2px solid white;box-shadow:0 0 4px #00000080;pointer-events:auto;font-size:.75rem;font-weight:600;white-space:nowrap}.marker.built-property{background-color:#48bb78;border:2px solid #2f855a;box-shadow:0 0 8px #48bb7880}.marker:hover{background-color:#2c5282;box-shadow:0 0 8px #000000b3;z-index:5}.marker.built-property:hover{background-color:#38a169;box-shadow:0 0 12px #48bb78b3}.marker:active{transform:scale(.95)}.mapboxgl-popup{z-index:4}.mapboxgl-popup-content{padding:1rem;border-radius:8px;box-shadow:0 2px 8px #00000026;background-color:#fff;max-width:300px}.mapboxgl-popup-content h3{font-weight:700;margin-bottom:.5rem;color:#1a365d}.mapboxgl-popup-content p{margin:0;font-size:.875rem}.mapboxgl-popup-content p.address{color:#4b5563;font-size:.75rem;margin-top:.25rem}.property-info{position:absolute;bottom:1rem;left:1rem;z-index:1001;background-color:#fffffff2;border-radius:.5rem;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;max-width:24rem;width:calc(100% - 2rem);display:flex;flex-direction:column;max-height:calc(100vh - 2rem);overflow:hidden;transition:opacity .3s ease,transform .3s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2)}.property-info.hidden{display:none;opacity:0;transform:translateY(20px)}.property-info.showing{opacity:0;transform:translateY(20px)}.property-info:not(.hidden):not(.showing){opacity:1;transform:translateY(0)}.property-info-header{padding:.75rem;border-bottom:1px solid rgba(0,0,0,.1);display:flex;justify-content:flex-end;align-items:center;position:sticky;top:0;background-color:#fffffff2;z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.close-button{background:none;border:none;font-size:1.5rem;color:#4a5568;cursor:pointer;padding:.25rem .5rem;line-height:1;border-radius:.25rem;transition:all .2s ease}.close-button:hover{background-color:#edf2f7;color:#2d3748}.property-info-content{padding:1rem;overflow-y:auto}.property-info-footer{padding:1rem;border-top:1px solid rgba(0,0,0,.1);display:flex;flex-direction:column;gap:.5rem}.property-info-footer button{padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin:0;border:none;transition:all .2s ease;font-size:.9rem}#buy-property{background-color:#1a365d;color:#fff}#buy-property:hover:not(:disabled){background-color:#2c5282}#sell-property{background-color:#fc8181;color:#fff}#sell-property:hover:not(:disabled){background-color:#f56565}#rent-property{background-color:#1a365d;color:#fff}#buy-property:disabled,#sell-property:disabled,#rent-property:disabled{background-color:#cbd5e0;cursor:not-allowed;opacity:.6}#buy-property:disabled:hover,#sell-property:disabled:hover,#rent-property:disabled:hover{background-color:#cbd5e0;opacity:.6}.property-header{margin-bottom:1rem}.property-header h2{font-size:1.1rem;font-weight:700;color:#1a365d;margin-bottom:.25rem;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-price{font-size:1.25rem;font-weight:600;color:#2c5282}.property-image{width:100%;height:200px;margin-bottom:1rem;border-radius:.5rem;overflow:hidden;box-shadow:0 2px 4px #0000001a;position:relative;background-color:#e2e8f0}.property-image:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,#e2e8f0 25%,#cbd5e0,#e2e8f0 75%);background-size:200% 100%;animation:pulse 1.5s infinite;opacity:1;transition:opacity .3s ease-out}.property-image.loaded:before{opacity:0}.property-image img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease-in}.property-image.loaded img{opacity:1}@keyframes pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.buy-button,.sell-button{width:100%;margin:0}.hidden{display:none}.sell-button{background-color:#c53030;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin-top:.125rem;transition:background-color .2s}.sell-button:hover{background-color:#9b2c2c}.sell-button:disabled{background-color:#cbd5e0;cursor:not-allowed}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000;padding:0;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000;border-radius:.5rem}.modal.hidden{display:none}.modal-content{background-color:#fff;border-radius:.5rem;box-shadow:0 4px 6px #0000001a;width:100%;max-width:500px;max-height:90vh;position:relative;margin:0;display:flex;flex-direction:column;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.modal-header{padding:1rem;position:sticky;top:0;background-color:#fff;z-index:1;border-bottom:1px solid #e2e8f0;border-radius:.5rem .5rem 0 0}.modal-body{padding:1rem;overflow:auto;flex:1}.modal-body .property-info-content{padding:0}.modal-body .property-image{width:100%;height:200px;margin-bottom:1rem;border-radius:.5rem;overflow:hidden;box-shadow:0 2px 4px #0000001a;position:relative;background-color:#e2e8f0}.modal-body .property-image:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,#e2e8f0 25%,#cbd5e0,#e2e8f0 75%);background-size:200% 100%;animation:pulse 1.5s infinite;opacity:1;transition:opacity .3s ease-out}.modal-body .property-image.loaded:before{opacity:0}.modal-body .property-image img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease-in}.modal-body .property-image.loaded img{opacity:1}.modal-body .property-header{margin-bottom:1rem}.modal-body .property-header h2{font-size:1.1rem;font-weight:700;color:#1a365d;margin-bottom:.25rem;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-body .property-price{font-size:1.25rem;font-weight:600;color:#2c5282}.modal-body .property-details-table,.modal-body .purchase-calculations{margin-bottom:1.5rem}.modal-body .purchase-options{margin-top:1.5rem}.modal-footer{padding:1rem;position:sticky;bottom:0;background-color:#fff;z-index:1;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:.75rem;border-radius:0 0 .5rem .5rem}.modal-footer .confirm-button,.modal-footer .cancel-button{width:100%;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;transition:all .2s;border:none;font-size:.9rem}.modal-footer .confirm-button{background-color:#1a365d;color:#fff}.modal-footer .confirm-button:hover:not(:disabled){background-color:#2c5282}.modal-footer .cancel-button{background-color:#e2e8f0;color:#4a5568}.modal-footer .cancel-button:hover:not(:disabled){background-color:#cbd5e0}.modal-footer .confirm-button:disabled,.modal-footer .cancel-button:disabled{background-color:#cbd5e0;cursor:not-allowed;opacity:.6}.modal-footer .confirm-button:disabled:hover,.modal-footer .cancel-button:disabled:hover{background-color:#cbd5e0;opacity:.6}.modal-content h2{margin:0;color:#1a365d}.owned-properties-list{display:grid;gap:1rem;margin-bottom:1rem}.owned-property{background-color:#f7fafc;padding:1rem;border-radius:.25rem;border:1px solid #e2e8f0;cursor:pointer;transition:all .2s}.owned-property:hover{background-color:#edf2f7;transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.owned-property:active{transform:translateY(0)}.owned-property h4{color:#1a365d;margin-bottom:.5rem}.owned-property p{color:#4a5568}.owned-property .property-type{color:#2c5282;font-weight:500;font-size:.875rem;margin-top:.25rem;text-transform:capitalize}.close-modal{background-color:#e2e8f0;color:#4a5568;border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin-top:.25rem;transition:all .2s;font-size:.9rem}.close-modal:hover:not(:disabled){background-color:#cbd5e0}.close-modal:disabled{background-color:#cbd5e0;cursor:not-allowed;opacity:.6}.close-modal:disabled:hover{background-color:#cbd5e0;opacity:.6}.notification{background-color:#f56565;color:#fff;padding:.75rem;border-radius:.5rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;font-size:.875rem}.notification.success{background-color:#48bb78}.notification.warning{background-color:#ed8936}.notification svg{width:1.25rem;height:1.25rem;flex-shrink:0}.reset-button{background-color:#e53e3e;color:#fff;border:none;padding:.5rem 1rem;border-radius:.25rem;font-weight:600;cursor:pointer;margin-top:1rem;transition:background-color .2s}.reset-button:hover{background-color:#c53030}.reset-button:active{transform:translateY(1px)}.modal-content ul{margin:1rem 0;padding-left:1.5rem}.modal-content li{margin-bottom:.5rem;color:#4a5568}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem}.modal-actions .confirm-button{background-color:#1a365d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;transition:background-color .2s}.modal-actions .confirm-button:hover{background-color:#2c5282}.modal-actions .cancel-button{background-color:#e2e8f0;color:#4a5568;border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;transition:background-color .2s}.modal-actions .cancel-button:hover{background-color:#cbd5e0}.purchase-calculations{width:100%;border-collapse:collapse;margin:0;background-color:#fff;border-radius:.5rem;overflow:hidden;box-shadow:0 1px 3px #0000001a}.purchase-calculations thead{background-color:#f7fafc;border-bottom:1px solid #e2e8f0}.purchase-calculations th{padding:.75rem 1rem;text-align:left;font-weight:600;color:#1a365d;font-size:.9rem;width:50%}.purchase-calculations td{padding:.75rem 1rem;color:#4a5568;font-size:.9rem;border-bottom:1px solid #e2e8f0;text-align:right}.purchase-calculations tr:last-child td{border-bottom:none;font-weight:600;color:#1a365d}.purchase-calculations tr.highlight td{background-color:#ebf8ff;color:#2c5282}.purchase-calculations tr.highlight:hover td{background-color:#bee3f8}.overlay-notification{position:fixed;top:1rem;right:1rem;z-index:1000;animation:slideIn .3s ease-out}.overlay-notification .notification-content{background-color:#fff;color:#2d3748;padding:1rem;border-radius:.5rem;box-shadow:0 4px 6px #0000001a;display:flex;align-items:center;gap:.75rem;min-width:300px}.overlay-notification.error .notification-content{background-color:#f56565;color:#fff}.overlay-notification.warning .notification-content{background-color:#ed8936;color:#fff}.overlay-notification.success .notification-content{background-color:#48bb78;color:#fff}.overlay-notification svg{width:1.5rem;height:1.5rem;flex-shrink:0}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}button:disabled{opacity:.6;cursor:not-allowed;background-color:#ccc;border-color:#ccc;color:#666}button:disabled:hover{background-color:#ccc;border-color:#ccc;color:#666}button:disabled:active{transform:none;box-shadow:none}.disabled-message{background-color:#f56565;color:#fff;padding:.5rem;border-radius:.25rem;font-size:.875rem;margin-bottom:.5rem;text-align:center;width:100%;display:none}button:disabled~.disabled-message{display:block}.tooltip{display:none}.bottom-menu{position:fixed;bottom:0;left:0;width:100%;background-color:#000c;padding:.75rem;box-shadow:0 -2px 4px #0f03;display:flex;justify-content:space-around;align-items:center;z-index:100;font-family:"Press Start 2P",sans-serif}.menu-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem;color:#0f0;cursor:pointer;transition:all .2s;min-width:60px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 3px rgba(0,255,0,.3)}.menu-item:hover{color:#0f0;text-shadow:0 0 8px rgba(0,255,0,.5)}.menu-item:hover svg{stroke:#0f0;filter:drop-shadow(0 0 5px rgba(0,255,0,.5))}.menu-item[data-action=reset]:hover{color:#0f0}.menu-item[data-action=reset]:hover svg{stroke:#0f0;filter:drop-shadow(0 0 5px rgba(0,255,0,.5))}.menu-item svg{width:24px;height:24px;margin-bottom:.25rem;stroke:#0f0;transition:all .2s}.menu-item span{font-size:.65rem;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-item.active svg,.menu-item.active span{color:#0f0;text-shadow:0 0 8px rgba(0,255,0,.5)}.permit-options{display:grid;gap:1rem;margin:0}.permit-option{background-color:#f7fafc;padding:.75rem;border-radius:.5rem;border:1px solid #e2e8f0;cursor:pointer;transition:all .2s}.permit-option:hover{background-color:#edf2f7;transform:translateY(-1px)}.permit-option.selected{background-color:#e2e8f0;border-color:#1a365d}.permit-option h3{color:#1a365d;font-size:.9rem;margin-bottom:.25rem}.permit-option p{color:#4a5568;font-size:.8rem;margin-bottom:.125rem}.build-options{display:grid;gap:.75rem;margin:0}.build-option{background-color:#f7fafc;padding:.75rem;border-radius:.5rem;border:1px solid #e2e8f0;cursor:pointer;transition:all .2s}.build-option:hover{background-color:#edf2f7;transform:translateY(-1px)}.build-option.selected{background-color:#e2e8f0;border-color:#1a365d}.build-option h3{color:#1a365d;font-size:.9rem;margin-bottom:.25rem}.build-option p{color:#4a5568;font-size:.8rem;margin-bottom:.125rem}.build-option.disabled{opacity:.5;cursor:not-allowed;background-color:#f7fafc}.build-option.disabled:hover{transform:none}.borrowing-options{display:grid;gap:.5rem;margin:0}.borrowing-option{background-color:#f7fafc;padding:.75rem;border-radius:.5rem;border:1px solid #e2e8f0;cursor:pointer;transition:all .2s;margin-bottom:.25rem}.borrowing-option:hover{background-color:#edf2f7;transform:translateY(-1px)}.borrowing-option h3{color:#1a365d;font-size:1rem;margin-bottom:.25rem}.borrowing-option p{color:#4a5568;font-size:.875rem;margin-bottom:.125rem}.borrowing-option.illegal{background-color:#fff5f5;border-color:#fed7d7}.borrowing-option.illegal h3,.borrowing-option.illegal p{color:#c53030}.borrowing-option .warning{font-weight:600;padding:.25rem .5rem;background-color:#fff5f5;border-radius:.25rem;margin-top:.25rem;font-size:.75rem}.jail-status{background-color:#f7fafc;padding:1rem;border-radius:.5rem;margin:0}.jail-status h3{color:#1a365d;margin-bottom:.5rem}.jail-status p{color:#4a5568;margin-bottom:.5rem}.jail-actions{display:grid;gap:.5rem;margin-top:1rem;margin-bottom:0}.jail-action{background-color:#e2e8f0;padding:.75rem;border-radius:.25rem;cursor:pointer;transition:all .2s}.jail-action:hover{background-color:#cbd5e0}.jail-action.disabled{opacity:.5;cursor:not-allowed}.active-permits-section{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.active-permits-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.active-permits-section h3{color:#1a365d;margin-bottom:1rem}.active-permits-list{display:grid;gap:.75rem}.active-permit{background-color:#f7fafc;padding:1rem;border-radius:.5rem;border:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.active-permit-info{flex:1}.active-permit-info h4{color:#1a365d;margin-bottom:.25rem}.active-permit-info p{color:#4a5568;font-size:.875rem}.active-permit-date{color:#718096;font-size:.875rem;margin-left:1rem}.no-permits{text-align:center;color:#718096;padding:1rem;background-color:#f7fafc;border-radius:.5rem;border:1px dashed #e2e8f0}.active-loans-section{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.active-loans-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.active-loans-section h3{color:#1a365d;margin-bottom:1rem;margin-top:2rem}.active-loans-list{display:grid;gap:1.5rem}.bank-summary-container{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.deposit-info{background-color:#fff;padding:1rem;border-radius:.5rem;border:1px solid #e2e8f0;height:100%;display:flex;flex-direction:column}.deposit-info h3{color:#1a365d;margin-bottom:.5rem;font-size:1rem}.debt-summary{background-color:#fff;padding:1rem;border-radius:.5rem;border:1px solid #e2e8f0;height:100%;display:flex;flex-direction:column}.debt-summary h3{color:#1a365d;margin-bottom:.5rem;font-size:1rem}.debt-summary .deposit-amount{display:block}.debt-summary .deposit-amount p{color:#4a5568;font-size:.875rem;margin:0}.debt-summary .deposit-amount p:last-child{color:#2c5282;font-weight:500}@media (max-width: 640px){.bank-summary-container{grid-template-columns:1fr}.deposit-info,.debt-summary{margin-bottom:1rem;background-color:#fff}}.active-loan{background-color:#f7fafc;padding:.75rem;border-radius:.5rem;border:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.active-loan:last-child{margin-bottom:0}.active-loan-info{flex:1}.active-loan-info h4{color:#1a365d;margin-bottom:.25rem;font-size:.9rem}.active-loan-info p{color:#4a5568;font-size:.8rem;margin-bottom:.125rem;line-height:1.4}.active-loan-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.pay-loan-btn{background-color:#2c5282;color:#fff;border:none;padding:.5rem 1rem;border-radius:.25rem;font-weight:600;cursor:pointer;transition:background-color .2s;font-size:.875rem}.pay-loan-btn:hover{background-color:#2b6cb0}.active-loan-date{color:#718096;font-size:.8rem}#jail-status-box{display:flex;align-items:center;gap:.5rem}#jail-status-box.in-jail{background-color:#feb2b2;color:#c53030}#jail-status-box.in-jail:hover{background-color:#fc8181}.jail-time{font-size:.875rem;opacity:.8}.active-permits-section.compact{margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.active-permits-section.compact h3{font-size:1rem;margin-bottom:.5rem;color:#4a5568}.active-permits-section.compact .active-permit{padding:.5rem;margin-bottom:.25rem;font-size:.875rem}.active-permits-section.compact .active-permit-info h4{font-size:.875rem;margin-bottom:.125rem}.active-permits-section.compact .active-permit-info p,.active-permits-section.compact .active-permit-date{font-size:.75rem}.mapboxgl-canvas-container.build-mode,.mapboxgl-canvas-container.build-mode .mapboxgl-canvas,.mapboxgl-canvas-container.build-mode .mapboxgl-marker{cursor:crosshair}.build-mode-cursor{position:absolute;width:25px;height:25px;background-color:#00ff001a;border:2px solid rgba(0,255,0,.5);border-radius:4px;pointer-events:none;z-index:1000;transform-origin:center;transition:all .1s ease}.build-mode-cursor.valid{background-color:#00ff001a;border-color:#00ff0080}.build-mode-cursor.invalid{background-color:#ff00001a;border-color:#ff000080}@keyframes pulse{0%{box-shadow:0 0 #1a365d66}70%{box-shadow:0 0 0 10px #1a365d00}to{box-shadow:0 0 #1a365d00}}@media (max-width: 768px){html,body{height:100%;overflow:hidden;position:fixed;width:100%;-webkit-overflow-scrolling:none}.app-container{overflow:hidden;padding-bottom:70px;-webkit-overflow-scrolling:none}.map-container{position:fixed;width:100%;height:100%;top:0;left:0;overflow:hidden;-webkit-overflow-scrolling:none}.game-info{top:.5rem;left:.5rem;padding:.5rem}.game-info h1{font-size:.6rem;margin-bottom:.25rem}.stat-box{padding:.25rem .5rem;min-width:150px;font-size:.8rem}.property-info{bottom:0;left:0;right:0;max-width:none;width:100%;border-radius:1rem 1rem 0 0;margin:0;max-height:calc(90vh - 70px);-webkit-overflow-scrolling:touch;transform:translateY(0);transition:transform .3s ease;padding-bottom:90px}.property-info.hidden,.property-info.showing{transform:translateY(100%)}.property-info:not(.hidden):not(.showing){transform:translateY(0)}.property-info-content{padding:.75rem .75rem 1.5rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.property-info-footer{padding:.75rem;gap:.5rem;position:sticky;bottom:0;background-color:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid rgba(0,0,0,.1);padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.property-image{height:150px;margin-bottom:.75rem}.property-header h2{font-size:1rem;margin-bottom:.25rem}.property-price{font-size:1.1rem}.property-details-table tr{padding:.3rem .4rem}.property-details-table .label,.property-details-table td:last-child{font-size:.8rem}.property-info-footer button,#buy-property,#sell-property{padding:.5rem 1rem;font-size:.875rem}.modal{padding:0;align-items:flex-start;overflow-y:auto;-webkit-overflow-scrolling:touch;border-radius:0;background-color:#fff}.modal-content{max-height:none;min-height:100vh;border-radius:0;margin:0;width:100%;display:flex;flex-direction:column}.modal-header{padding:1rem;position:sticky;top:0;background-color:#fff;z-index:1;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.modal-header h2{font-size:1.25rem;margin:0}.modal-body{padding:1rem;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-footer{padding:1rem;position:sticky;bottom:0;background-color:#fff;z-index:1;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:.75rem;border-radius:0 0 .5rem .5rem}.close-modal{background-color:#e2e8f0;color:#4a5568;border:none;padding:.5rem 1rem;border-radius:.25rem;cursor:pointer;font-weight:600}.close-modal:hover{background-color:#cbd5e0}.permit-option,.build-option,.borrowing-option,.jail-action{padding:.75rem}.permit-option h3,.build-option h3,.borrowing-option h3,.jail-action h3{font-size:1rem;margin-bottom:.25rem}.permit-option p,.build-option p,.borrowing-option p,.jail-action p{font-size:.875rem;margin-bottom:.125rem}.bottom-menu{height:70px}.menu-item{padding:.75rem .5rem}.menu-item svg{width:28px;height:28px;margin-bottom:.25rem}.menu-item span{font-size:.75rem}.borrowing-option{padding:.5rem}.borrowing-option h3{font-size:.875rem}.borrowing-option p{font-size:.75rem}.borrowing-option .warning{font-size:.7rem;padding:.2rem .4rem}.borrowing-options{margin-bottom:1rem}.active-loans-section{margin-top:1rem}.active-loans-section h3{font-size:.875rem}.active-loan{flex-direction:column;gap:.75rem}.active-loan-actions{width:100%;flex-direction:row;justify-content:space-between;align-items:center}.pay-loan-btn{padding:.375rem .75rem;font-size:.75rem}.debt-summary{padding:.75rem}.debt-summary h3{font-size:.875rem}.debt-summary .deposit-amount p{font-size:.75rem}.activity{padding:.5rem;margin-bottom:.5rem;border-radius:.25rem}.activities-section{margin-bottom:1rem}.activities-section h3{font-size:.875rem;margin-bottom:.5rem}.no-players-message{padding:1.5rem;font-size:.875rem}.menu-item{padding:.5rem .25rem}.menu-item svg{width:20px;height:20px;margin-bottom:.2rem}.menu-item span{font-size:.55rem;line-height:1.2}.stat-box{padding:.25rem .5rem;min-width:120px;font-size:.65rem}.game-info h1{font-size:.55rem;margin-bottom:.25rem}.bottom-menu{height:60px;padding:.5rem}}@media (max-width: 360px){.menu-item svg{width:18px;height:18px}.menu-item span{font-size:.5rem}.stat-box{min-width:100px;font-size:.6rem}}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}.permits-section{margin-bottom:1.5rem}.permits-section h4{color:#1a365d;margin-bottom:.75rem;font-size:1rem}.used-permits{border-top:1px solid #e2e8f0;padding-top:1rem}.active-permit.used{background-color:#f7fafc;border-color:#cbd5e0;opacity:.8}.active-permit.used .active-permit-info h4{color:#4a5568}.active-permit.used .active-permit-date{font-style:italic}.deposit-info{background-color:#fff;padding:1rem;border-radius:.5rem;margin:0 0 1.5rem;border:1px solid #e2e8f0}.deposit-info h3{color:#1a365d;margin-bottom:.5rem}.deposit-amount{display:block}.deposit-amount p{color:#4a5568;font-size:.875rem;margin:0}.deposit-amount p:last-child{color:#2c5282;font-weight:500}.withdraw-button{background-color:#2c5282;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin-top:1rem;transition:background-color .2s}.withdraw-button:hover{background-color:#2b6cb0}.withdraw-button:disabled{background-color:#cbd5e0;cursor:not-allowed}.withdraw-button:disabled:hover{background-color:#cbd5e0}.purchase-options{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.purchase-option{display:flex;flex-direction:column;padding:1rem;border:1px solid #e2e8f0;border-radius:.5rem;transition:all .2s ease;height:100%;cursor:pointer;background-color:#f7fafc}.purchase-option:hover:not(.disabled){border-color:#4299e1;background-color:#ebf8ff;box-shadow:0 2px 4px #4299e11a}.purchase-option.disabled{opacity:.5;cursor:not-allowed;background-color:#f7fafc}.purchase-option.selected{border-color:#1a365d;background-color:#ebf8ff;box-shadow:0 2px 4px #1a365d1a}.purchase-option.selected h3,.purchase-option.selected .highlight{color:#1a365d}.purchase-option h3{font-size:1.1rem;font-weight:600;margin-bottom:.5rem;color:#2d3748}.purchase-option p{font-size:.9rem;color:#4a5568;margin-bottom:.5rem}.purchase-option .highlight{font-weight:600;color:#2d3748}.purchase-option-button{margin-top:auto;width:100%;padding:.75rem 1.5rem;background-color:#1a365d;color:#fff;border:none;border-radius:.25rem;font-weight:600;cursor:pointer;transition:background-color .2s;font-size:.9rem}.purchase-option-button:hover{background-color:#2c5282}.purchase-option-button:disabled{background-color:#cbd5e0;cursor:not-allowed}@media (max-width: 768px){.purchase-options{grid-template-columns:1fr}.purchase-option{padding:.75rem}}.activity{padding:.75rem;margin-bottom:.75rem;background-color:#f7fafc;border-radius:.5rem;font-size:.875rem;color:#2d3748;border-left:3px solid #4299e1}.activity:first-child{margin-top:0}.activity:last-child{margin-bottom:0}.property-details-table{width:100%;border-collapse:collapse;margin:.5rem 0;background-color:#fff;border-radius:.5rem;overflow:hidden;box-shadow:0 1px 3px #0000001a}.property-details-table tr{display:flex;justify-content:space-between;align-items:center;padding:.35rem .5rem;border-bottom:1px solid #e2e8f0}.property-details-table tr:last-child{border-bottom:none}.property-details-table .label{font-weight:600;color:#4a5568;flex:1;font-size:.85rem}.property-details-table td:last-child{color:#2d3748;text-align:right;margin-left:.75rem;font-size:.85rem}.property-details-table tr:hover{background-color:#f7fafc}.purchase-layout{display:flex;gap:1rem;margin-bottom:1.5rem}.purchase-image{width:200px;height:150px;flex-shrink:0;border-radius:.5rem;overflow:hidden;box-shadow:0 2px 4px #0000001a;position:relative;background-color:#e2e8f0}.purchase-image:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,#e2e8f0 25%,#cbd5e0,#e2e8f0 75%);background-size:200% 100%;animation:pulse 1.5s infinite;opacity:1;transition:opacity .3s ease-out}.purchase-image.loaded:before{opacity:0}.purchase-image img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease-in}.purchase-image.loaded img{opacity:1}.purchase-details{flex:1;min-width:0}.purchase-details .property-header{margin-bottom:1rem}.purchase-details .property-header h2{font-size:1.1rem;font-weight:700;color:#1a365d;margin-bottom:.25rem;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.purchase-details .property-price{font-size:1.25rem;font-weight:600;color:#2c5282}.building-info{position:absolute;bottom:1rem;right:1rem;z-index:1001;background-color:#fffffff2;border-radius:.5rem;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;max-width:24rem;width:calc(100% - 2rem);display:flex;flex-direction:column;max-height:calc(100vh - 2rem);overflow:hidden;transition:opacity .3s ease,transform .3s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2)}.building-info.hidden{display:none;opacity:0;transform:translateY(20px)}.building-info:not(.hidden){opacity:1;transform:translateY(0)}.building-info-content{padding:1rem;overflow-y:auto}.building-header{margin-bottom:1rem}.building-header h2{font-size:1.1rem;font-weight:700;color:#1a365d;margin-bottom:.25rem;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.building-type{font-size:1rem;color:#4a5568;text-transform:capitalize}.building-stats{background-color:#f7fafc;border-radius:.5rem;padding:1rem;margin-bottom:1rem}.building-stats .stat{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #e2e8f0}.building-stats .stat:last-child{border-bottom:none}.building-stats .label{font-weight:600;color:#4a5568;font-size:.85rem}.building-stats span:last-child{color:#2d3748;font-size:.85rem}.building-actions{display:flex;gap:.5rem}.view-button,.edit-button{flex:1;padding:.75rem;border-radius:.25rem;font-weight:600;cursor:pointer;transition:background-color .2s;border:none}.view-button{background-color:#1a365d;color:#fff}.view-button:hover{background-color:#2c5282}.edit-button{background-color:#48bb78;color:#fff}.edit-button:hover{background-color:#38a169}.property-menu-item{transition:background-color .2s ease}.property-menu-item:hover{background-color:#f7fafc}.property-menu-item:active{background-color:#edf2f7}#property-selection-menu{max-width:400px;min-width:300px;background-color:#fff;border-radius:8px;z-index:1000;position:fixed;max-height:80vh;overflow-y:auto}#property-selection-menu hr{margin:8px 0;border:none;border-top:1px solid #e2e8f0}@media (max-width: 768px){#property-selection-menu{max-width:90vw;min-width:auto;left:5vw!important;right:5vw!important;top:50%!important;transform:translateY(-50%)}}.welcome-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0006;display:flex;justify-content:center;align-items:center;z-index:1000}.welcome-modal-content{background-color:#fff;padding:2rem;border-radius:.5rem;box-shadow:0 4px 6px #0000001a;max-width:600px;width:90%;position:relative;pointer-events:auto}.welcome-modal-content h2{font-family:"Press Start 2P",sans-serif;color:#1a365d;font-size:1.5rem;margin-bottom:.5rem;line-height:1.4}@media (max-width: 768px){.welcome-modal-content h2{font-size:1.2rem;line-height:1.3;margin-bottom:.75rem}}@media (max-width: 480px){.welcome-modal-content h2{font-size:1rem;line-height:1.2}}.welcome-modal-content .credits{font-size:.8rem;color:#718096;margin-bottom:1rem;margin-top:1rem;text-align:left}.welcome-modal-content .credits a{color:#1a365d;text-decoration:none;font-weight:500}.welcome-modal-content .credits a:hover{text-decoration:underline}.game-description{color:#4a5568;font-size:1rem;margin-bottom:2rem;text-align:left}.username-input{margin-bottom:.5rem;text-align:left}.username-input label{display:block;color:#4a5568;margin-bottom:.5rem;font-weight:600}.username-input input{width:100%;padding:.75rem;border:2px solid #e2e8f0;border-radius:.5rem;font-size:1rem;transition:border-color .2s;height:3rem}.username-input input:focus{outline:none;border-color:#1a365d}.start-game-button{width:100%;background-color:#1a365d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:600;cursor:pointer;transition:background-color .2s;margin-top:.25rem;height:3rem}.start-game-button:hover{background-color:#2c5282}.start-game-button:disabled{background-color:#cbd5e0;cursor:not-allowed}.game-actions,.reset-button{display:none}.title-fraud-button{background-color:#fc8181;color:#ccc;border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin-top:.25rem;transition:all .2s;opacity:.6}.title-fraud-button:hover:not(:disabled){background-color:#f56565;color:#fff;opacity:1}.title-fraud-button:disabled{background-color:#fc8181;color:#ccc;cursor:not-allowed;opacity:.6}.title-fraud-button:disabled:hover{background-color:#fc8181;color:#ccc;opacity:.6}.title-fraud-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:2000;font-family:Courier New,monospace;color:#ff6b6b;text-shadow:0 0 10px #ff6b6b;font-size:2rem;text-align:center;animation:neonPulse 1.5s infinite}@keyframes neonPulse{0%{text-shadow:0 0 10px #ff6b6b}50%{text-shadow:0 0 20px #ff6b6b,0 0 30px #ff6b6b}to{text-shadow:0 0 10px #ff6b6b}}#rent-property{background-color:#1a365d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin-top:.25rem;transition:background-color .2s}#rent-property:hover:not(:disabled){background-color:#2c5282}#rent-property:disabled{background-color:#cbd5e0;cursor:not-allowed}.rental-status{color:#1a365d;font-weight:500;font-size:.875rem;margin-top:.25rem;padding:.25rem .5rem;background-color:#ebf8ff;border-radius:.25rem;display:inline-block}.music-toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem}.switch{position:relative;display:inline-block;width:50px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s}.slider:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:#fff;transition:.4s}input:checked+.slider{background-color:#1a365d}input:focus+.slider{box-shadow:0 0 1px #1a365d}input:checked+.slider:before{transform:translate(26px)}.slider.round{border-radius:24px}.slider.round:before{border-radius:50%}p{line-height:1.3;margin:0}.leaderboard-table{width:100%;border-collapse:collapse;margin:0;background-color:#fff;border-radius:.375rem;overflow-x:auto;box-shadow:0 2px 4px #0000001a;font-size:.85rem}.leaderboard-table thead{background-color:#1a365d;color:#fff}.leaderboard-table th{padding:.5rem;text-align:left;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.02em;white-space:nowrap}.leaderboard-table tbody tr{border-bottom:1px solid #e2e8f0;transition:background-color .2s}.leaderboard-table tbody tr:last-child{border-bottom:none}.leaderboard-table tbody tr:hover{background-color:#f7fafc}.leaderboard-table td{padding:.5rem;color:#4a5568;white-space:nowrap;text-align:left}.leaderboard-table td:first-child{font-weight:600;color:#1a365d;width:35px;text-align:left}.leaderboard-table td:nth-child(2){font-weight:500;color:#2d3748;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-table td:nth-child(3),.leaderboard-table td:nth-child(4),.leaderboard-table td:nth-child(5){font-family:monospace;font-size:.85rem;padding-right:.75rem;text-align:left}.no-players-message{text-align:left;padding:1rem;color:#718096;background-color:#f7fafc;border-radius:.375rem;margin:0;font-size:.85rem}@media (max-width: 640px){.leaderboard-table{font-size:.8rem}.leaderboard-table th,.leaderboard-table td{padding:.4rem .5rem}.leaderboard-table td:first-child{width:30px}.leaderboard-table td:nth-child(2){max-width:120px}.leaderboard-table th{font-size:.7rem}}.leaderboard-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.launder-money-button{background-color:#fc8181;color:#ccc;border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin-top:.25rem;transition:all .2s;opacity:.6}.launder-money-button:hover:not(:disabled){background-color:#f56565;color:#fff;opacity:1}.launder-money-button:disabled{background-color:#fc8181;color:#ccc;cursor:not-allowed;opacity:.6}.launder-money-button:disabled:hover{background-color:#fc8181;color:#ccc;opacity:.6}.launder-money-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:2000;font-family:Courier New,monospace;color:#4299e1;text-shadow:0 0 10px #4299e1;font-size:2rem;text-align:center;animation:neonPulse 1.5s infinite}.button{border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin-top:.25rem;transition:all .2s;font-size:.9rem}.button:hover:not(:disabled){opacity:1}.button:disabled{cursor:not-allowed;opacity:.6}.button:disabled:hover{opacity:.6}.button.primary{background-color:#1a365d;color:#fff}.button.primary:hover:not(:disabled){background-color:#2c5282}.button.secondary{background-color:#e2e8f0;color:#4a5568}.button.secondary:hover:not(:disabled){background-color:#cbd5e0}.button.danger{background-color:#fc8181;color:#ccc}.button.danger:hover:not(:disabled){background-color:#f56565;color:#fff}.button.success{background-color:#48bb78;color:#fff}.button.success:hover:not(:disabled){background-color:#38a169}#buy-property,#rent-property,.purchase-option-button,.view-button,.start-game-button,.withdraw-button,.pay-loan-btn{border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin-top:.25rem;transition:all .2s;font-size:.9rem;background-color:#1a365d;color:#fff}#buy-property:hover:not(:disabled),#rent-property:hover:not(:disabled),.purchase-option-button:hover:not(:disabled),.view-button:hover:not(:disabled),.start-game-button:hover:not(:disabled),.withdraw-button:hover:not(:disabled),.pay-loan-btn:hover:not(:disabled){background-color:#2c5282;opacity:1}#sell-property,.title-fraud-button,.launder-money-button{border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin-top:.25rem;transition:all .2s;font-size:.9rem;background-color:#c41e3a;color:#ccc}#sell-property:hover:not(:disabled),.title-fraud-button:hover:not(:disabled),.launder-money-button:hover:not(:disabled){background-color:#c41e3a;color:#fff;opacity:1}.close-modal,.cancel-button{border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin-top:.25rem;transition:all .2s;font-size:.9rem;background-color:#e2e8f0;color:#4a5568}.close-modal:hover:not(:disabled),.cancel-button:hover:not(:disabled){background-color:#cbd5e0;opacity:1}.edit-button{border:none;padding:.75rem 1.5rem;border-radius:.25rem;font-weight:600;cursor:pointer;width:100%;margin-top:.25rem;transition:all .2s;font-size:.9rem;background-color:#48bb78;color:#fff}.edit-button:hover:not(:disabled){background-color:#38a169;opacity:1}#leaderboard-modal .modal-content{width:auto;max-width:90vw;height:auto;max-height:90vh;overflow:auto}.leaderboard-table{width:auto;min-width:400px;max-width:100%;table-layout:auto}
