body{font-family:Rajdhani,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;margin:0;padding:20px;background-image:url(https://i.imgur.com/egSkYse.png);background-color:#0d1117;background-size:cover;background-position:center;background-attachment:fixed;color:#e0e0e0;text-align:center;box-sizing:border-box}.main-container{background:#0a192fb3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:30px 40px;border-radius:16px;border:1px solid rgba(0,255,255,.2);box-shadow:0 4px 30px #0000001a,0 0 20px #00ffff1a;width:90%;margin-bottom:20px}#connection-view-container,#main-menu-container{max-width:500px}#dashboard-view-container{max-width:650px;display:none;flex-direction:column;align-items:center}#ship-selection-container{max-width:800px}h1{font-family:Orbitron,sans-serif;color:#0ff;font-size:2.5em;margin-bottom:10px;margin-top:0;text-shadow:0 0 5px #00FFFF,0 0 10px #00FFFF,0 0 20px #00aaff}.subtitle{font-size:1.1em;color:#aaeaff;margin-top:0;margin-bottom:25px;font-weight:400}h2,h3,h4{font-family:Orbitron,sans-serif;color:#aaeaff;text-shadow:0 0 5px rgba(0,170,255,.7);border-bottom:1px solid rgba(0,255,255,.2);padding-bottom:10px}h3{margin-top:0;margin-bottom:20px;font-size:1.4em}h4{margin-top:0;margin-bottom:15px;font-size:1.1em}#status-container{margin-bottom:20px;padding:12px;border-radius:8px;background-color:#0000004d;border:1px solid rgba(0,255,255,.2);min-height:40px;display:flex;align-items:center;justify-content:center}#status-message{margin:0;font-size:1em;color:#e0e0e0}button{font-family:Orbitron,sans-serif;text-transform:uppercase;background:transparent;color:#0af;border:2px solid #00aaff;padding:12px 20px;font-size:1em;border-radius:8px;cursor:pointer;transition:all .3s ease;width:100%;margin-bottom:15px}#menu-actions button,#dashboard-actions button{margin-bottom:15px}#menu-actions button:last-child,#dashboard-actions button:last-child{margin-bottom:0}button:hover:not(:disabled){background:#0af;color:#0d1117;box-shadow:0 0 15px #0af}button:active:not(:disabled){transform:scale(.98)}button:disabled{border-color:#555;color:#555;background-color:#1e1e1e80;cursor:not-allowed}.danger,.dashboard-button.danger{border-color:#ff4d9a;color:#ff4d9a}.danger:hover:not(:disabled),.dashboard-button.danger:hover:not(:disabled){background-color:#ff4d9a;box-shadow:0 0 15px #ff4d9a;color:#0d1117}#manual-wallet-section{margin-top:25px;padding-top:20px;border-top:1px solid rgba(0,255,255,.2)}.manual-wallet-label{font-size:.9em;color:#aaeaff;margin-bottom:10px;display:block}input[type=text]{display:block;width:calc(100% - 24px);padding:12px;margin-bottom:15px;border:1px solid #446;border-radius:8px;background-color:#0000004d;font-size:1em;color:#e0e0e0;font-family:Rajdhani,sans-serif;transition:border-color .3s ease,box-shadow .3s ease}input[type=text]:focus{outline:none;border-color:#0af;box-shadow:0 0 10px #00aaffb3}#dashboard-header{margin-bottom:25px;width:100%}#dashboard-header p{font-size:1.1em;color:#e0e0e0;margin-bottom:5px}#dashboardWalletAddress{font-weight:700;color:#0ff;word-break:break-all;font-size:1.1em;text-shadow:0 0 3px #00FFFF}#dashboard-actions{display:flex;flex-direction:column;gap:15px;width:100%;max-width:400px;margin-bottom:25px}#dashboard-actions button{margin-bottom:0}#token-actions-section,#fetch-by-contract-section{padding:20px;border:1px solid rgba(0,255,255,.2);border-radius:8px;background-color:#0003;margin-top:5px;margin-bottom:5px}#token-balance-display-area,#nft-display-area{width:100%;margin-top:0;margin-bottom:20px;border:1px solid rgba(0,255,255,.2);border-radius:8px;background-color:#0000004d;padding:20px}#token-balance-display-area h4,#nft-display-area h3{border-bottom:none;padding-bottom:0}#vrse-balance-message,#nft-status-message,#ship-selection-status,#crowar-selection-status{font-size:1.1em;color:#aaeaff;margin:15px 0;min-height:1.2em}#nft-list{list-style-type:none;padding:0;max-height:300px;overflow-y:auto;border:1px solid rgba(0,255,255,.2);border-radius:5px;background-color:#0003}#nft-list li{padding:10px 15px;border-bottom:1px solid rgba(0,255,255,.1);font-size:1em;cursor:pointer;transition:background-color .2s ease;text-align:left;outline:none}#nft-list li:hover,#nft-list li:focus{background-color:#0af3}#nft-list li:last-child{border-bottom:none}#ship-nft-list,#crowar-nft-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:15px;max-height:50vh;overflow-y:auto;padding:10px;background:#0003;border-radius:8px;border:1px solid rgba(0,255,255,.2)}.ship-nft-card{background-color:#0006;border:1px solid rgba(0,255,255,.3);border-radius:8px;padding:10px;cursor:pointer;transition:all .2s ease-in-out;text-align:center;overflow:hidden}.ship-nft-card:hover{transform:scale(1.05);box-shadow:0 0 15px #00ffff80;border-color:#0ff}.ship-nft-card img{width:100%;height:100px;object-fit:cover;border-radius:4px;margin-bottom:5px}.ship-nft-card p{font-size:.8em;margin:0;color:#aaeaff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#game-container{position:relative;max-width:1024px;width:100%;display:none}#gameCanvas{background-color:#000;border:2px solid #00aaff;box-shadow:0 0 15px #0af;width:100%;image-rendering:pixelated}#game-ui{position:absolute;top:10px;left:10px;right:10px;display:flex;justify-content:space-between;color:#0ff;font-family:Orbitron,sans-serif;font-size:1.2em;text-shadow:0 0 5px #00FFFF;pointer-events:none}#game-over-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0a192fb3;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:100}.game-over-content{text-align:center;max-width:400px}.game-over-content h2{font-size:3em;color:#ff4d9a;text-shadow:0 0 10px #ff4d9a;border:none}.game-over-content p{font-size:1.5em;color:#aaeaff;margin-bottom:25px}.game-over-content button{width:auto;padding:12px 24px;margin:0 10px 10px}#crowar-selection-container{max-width:800px}#crowar-game-container{max-width:900px;text-align:center}#crowar-battle-arena{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.arena-side{flex:1;display:flex;flex-direction:column;align-items:center}.arena-side h3{text-transform:uppercase;color:#0ff;margin-bottom:15px;border:none}.arena-center{display:flex;flex-direction:column;align-items:center;justify-content:center;height:290px}.versus-text{font-size:3em;color:#ff4d9a;text-shadow:0 0 10px #ff4d9a;border:none}.fighter-card{width:100%;max-width:250px;height:290px;background:#0000004d;border:2px solid #00aaff;border-radius:8px;padding:10px;margin-bottom:20px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.fighter-card img{width:180px;height:180px;object-fit:cover;border-radius:4px;margin-bottom:10px}.fighter-card p{font-size:1em;font-weight:700;color:#aaeaff;margin:0 0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.health-bar-container{width:90%;height:20px;background-color:#1a1a1a;border-radius:10px;position:relative;border:1px solid #555;overflow:hidden}.health-bar{width:100%;height:100%;background-color:#4caf50;border-radius:10px;transition:width .5s ease-in-out}#opponent-health-bar{background-color:#f44336}.health-text{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.8em;font-weight:700;text-shadow:1px 1px 2px black}.win-streak{font-family:Orbitron,sans-serif;font-size:1.2em;color:gold;text-shadow:0 0 5px #ffd700,0 0 8px #ff8c00;margin:20px 0 0;font-weight:700}.abilities-container{width:100%;max-width:250px;position:relative;display:flex;flex-direction:column}.ability-loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0a192fcc;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:5;color:#0ff;font-family:Orbitron,sans-serif;font-size:1.5em;border-radius:8px}.abilities-container button{display:flex;flex-direction:column;align-items:center;justify-content:center;height:80px;padding:10px;margin-bottom:10px;width:100%;text-align:center;position:relative}.abilities-container button:last-child{margin-bottom:0}.ability-power{position:absolute;top:5px;right:5px;background-color:#000000b3;color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Orbitron,sans-serif;font-size:.9em;border:1px solid #fff;box-shadow:0 0 5px #ffffff80}.ability-type{font-size:.8em;text-transform:uppercase;color:#aaeaff;font-weight:400}.ability-name{font-size:1.1em;font-weight:700;color:#0ff;margin-top:5px}.ability-defense{border-color:#4caf50;color:#4caf50}.ability-defense:hover:not(:disabled){background-color:#4caf50;box-shadow:0 0 15px #4caf50;color:#0d1117}.ability-attack{border-color:#f44336;color:#f44336}.ability-attack:hover:not(:disabled){background-color:#f44336;box-shadow:0 0 15px #f44336;color:#0d1117}.ability-spell{border-color:#2196f3;color:#2196f3}.ability-spell:hover:not(:disabled){background-color:#2196f3;box-shadow:0 0 15px #2196f3;color:#0d1117}.abilities-container button:disabled{opacity:1;cursor:default;background:#0003}.ability-defense:disabled{border-color:#4caf50;color:#4caf50}.ability-attack:disabled{border-color:#f44336;color:#f44336}.ability-spell:disabled{border-color:#2196f3;color:#2196f3}.abilities-container button:disabled .ability-name{color:#0ff}.abilities-container button:disabled .ability-type{color:#aaeaff}#opponent-abilities button.selected{transform:scale(1.05)}#opponent-ability-defense.selected{background-color:#4caf504d;box-shadow:0 0 15px #4caf50}#opponent-ability-attack.selected{background-color:#f443364d;box-shadow:0 0 15px #f44336}#opponent-ability-spell.selected{background-color:#2196f34d;box-shadow:0 0 15px #2196f3}#crowar-results-panel{border:1px solid rgba(0,255,255,.2);border-radius:8px;padding:15px;margin-top:20px;margin-bottom:20px;background-color:#0000004d}#crowar-results-message{font-size:1.3em;min-height:1.4em;margin:0 0 15px;color:#aaeaff;transition:color .3s ease}#crowar-controls{display:flex;justify-content:center;gap:15px}#crowar-controls button{width:auto;padding:10px 20px;margin:0}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0a192f80;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;box-sizing:border-box}.modal-content{background:#0a192fd9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:30px;border-radius:16px;border:1px solid rgba(0,255,255,.3);box-shadow:0 4px 30px #0003,0 0 25px #00ffff26;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;position:relative;text-align:left;color:#e0e0e0}.modal-close{position:absolute;top:10px;right:15px;background:none;border:none;color:#aaeaff;font-size:2.5em;line-height:1;cursor:pointer;font-weight:300;width:auto;padding:0;margin-bottom:0}.modal-close:hover{color:#0ff;background:none;box-shadow:none;transform:none}.modal-content h3.modal-title{font-family:Orbitron,sans-serif;color:#0ff;text-shadow:0 0 5px #00FFFF;border-bottom:1px solid rgba(0,255,255,.2);padding-bottom:10px;margin-top:0}.modal-content h4{margin-top:25px;margin-bottom:10px}.modal-content p{margin:15px 0;line-height:1.6}#modal-nft-image{max-width:100%;border-radius:8px;margin-bottom:20px;border:1px solid rgba(0,255,255,.2);display:block}#modal-nft-metadata-json{background-color:#0006;padding:15px;border-radius:8px;border:1px solid rgba(0,255,255,.2);max-height:250px;overflow:auto;white-space:pre-wrap;word-wrap:break-word;font-size:.9em;font-family:Courier New,Courier,monospace;color:#e0e0e0}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#0003;border-radius:10px}::-webkit-scrollbar-thumb{background:#0af;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#0ff}#map-view-container{--tile-size: 2.2vmin;--label-size: 3vmin;--border-color: #ffd700;--bg-color: #1a1a1a;--font-color: #f0f0f0;--panel-bg: #2c2c2c;--plain: #a1887f;--suburban: #8BC34A;--commercial: #78909c;--corporate: #455a64;--font-family: "Roboto Mono", monospace;font-family:var(--font-family);display:none;flex-direction:column;align-items:center;justify-content:center}#map-view-container *{box-sizing:border-box}#map-view-container #app-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:2vmin}#map-loading-status{color:#aaeaff;font-size:1.2em;margin:20px}#map-stats-display{position:absolute;top:20px;right:20px;z-index:20;margin:0;padding:10px 15px;background:#0a192fb3;border:1px solid rgba(0,255,255,.2);border-radius:8px;font-size:1em;color:#0ff;text-shadow:0 0 5px #00FFFF;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}#map-view-container #map-wrapper{border:.5vmin solid var(--border-color);border-radius:10px;padding:1.5vmin;background-color:#252525;box-shadow:0 0 20px #00000080}#map-view-container #grid-container{display:grid;-webkit-user-select:none;user-select:none;gap:2px}#map-view-container .grid-cell{display:flex;justify-content:center;align-items:center;font-size:calc(var(--tile-size) * .6);font-weight:700;color:var(--font-color)}#map-view-container .tile{width:var(--tile-size);height:var(--tile-size);cursor:pointer;transition:transform .1s ease-out,box-shadow .2s ease}#map-view-container .tile:hover{transform:scale(1.1);z-index:10;box-shadow:0 0 15px #ffffff4d}#map-view-container .tile.selected{box-shadow:inset 0 0 0 .4vmin red;z-index:5}#map-view-container .tile.owned{box-shadow:0 0 8px 2px #00ffffb3;border:1px solid rgba(0,255,255,.8);z-index:2}#map-view-container .tile.owned:hover{transform:scale(1.1);z-index:11}#map-view-container .tile.selected.owned{box-shadow:inset 0 0 0 .4vmin red,0 0 12px #00ffffe6;z-index:6}#map-view-container .commercial{background-color:var(--commercial)}#map-view-container .corporate{background-color:var(--corporate)}#map-view-container .plain{background-color:var(--plain)}#map-view-container .suburban{background-color:var(--suburban)}#map-view-container #info-panel{margin-top:2.5vmin;padding:1.5vmin 3vmin;background-color:var(--panel-bg);border-radius:8px;border:1px solid #444;width:90%;max-width:600px;box-shadow:0 4px 10px #0000004d;text-align:center}#map-view-container .info-title{margin:0 0 1vmin;font-size:2vmin;color:var(--border-color);letter-spacing:2px;border-bottom:none}#map-view-container .info-line{font-size:1.8vmin;margin:.5vmin 0;color:var(--font-color)}#map-view-container .info-line strong{color:#ccc}#map-view-container #coords-display,#map-view-container #terrain-display{display:inline-block;min-width:12ch;color:#fff;font-weight:700;background-color:#383838;padding:.2vmin .8vmin;border-radius:4px}#builder-view-container{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:50;background-color:#1c1f24}#builder-view-container button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;text-transform:none;margin-bottom:0;width:auto}#builder-view-container h2{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;text-shadow:none;border-bottom:none;padding-bottom:0;color:#fff}#builder-view-container p{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}:root{--background-color: #1c1f24;--ui-panel-color: rgba(44, 48, 55, .85);--border-color: rgba(255, 255, 255, .1);--text-color: #f0f0f0;--text-color-secondary: #aab2c0;--accent-color: #7c3aed;--accent-color-hover: #9f63f2;--accent-color-disabled: #5a2aad;--danger-color: #e57373;--danger-color-hover: #f09a9a;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}#builder-view-container *{box-sizing:border-box}#main-canvas{position:fixed;top:0;left:0;outline:none;display:block;width:100%;height:100%}#top-bar{position:absolute;top:0;left:0;right:0;height:50px;background-color:var(--ui-panel-color);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;padding:0 20px;z-index:10;-webkit-user-select:none;user-select:none}#app-title{font-size:1.1em;font-weight:600;color:var(--text-color)}.top-bar-group{display:flex;align-items:center;gap:10px}.action-button{padding:8px 16px;font-size:.9em;font-weight:500;color:var(--text-color-secondary);background-color:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s ease}.action-button:hover{background-color:#ffffff1a;color:var(--text-color)}.action-button:disabled{color:#666;cursor:not-allowed;background-color:transparent}.icon-button{background-color:transparent;border:none;color:var(--text-color-secondary);width:34px;height:34px;padding:6px;border-radius:6px;cursor:pointer;transition:all .2s ease}.icon-button svg{width:100%;height:100%;fill:currentColor}.icon-button:hover{background-color:#ffffff1a;color:var(--text-color)}.icon-button:disabled{color:#555;cursor:not-allowed}.icon-button:disabled:hover{background-color:transparent}#left-toolbar{position:absolute;top:50%;left:20px;transform:translateY(-50%);z-index:10;background-color:var(--ui-panel-color);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:10px;border:1px solid var(--border-color);box-shadow:0 4px 15px #0000004d;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;padding:8px;gap:8px}.tool-button{width:40px;height:40px;padding:8px;color:var(--text-color-secondary);background-color:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease}.tool-button svg{width:100%;height:100%;fill:currentColor}.tool-button:hover{background-color:#ffffff1a;color:var(--text-color)}.tool-button.active{background-color:var(--accent-color);color:#fff}.toolbar-divider{height:1px;background-color:var(--border-color);margin:4px 0}#right-panel{position:absolute;top:70px;right:20px;z-index:10;width:250px;max-height:calc(100vh - 90px);overflow-y:auto;background-color:var(--ui-panel-color);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:10px;border:1px solid var(--border-color);box-shadow:0 4px 15px #0000004d;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;transition:opacity .3s ease,transform .3s ease;opacity:0;transform:translate(10px);pointer-events:none}#right-panel.visible{opacity:1;transform:translate(0);pointer-events:auto}.tools-group{border-bottom:1px solid var(--border-color)}.tools-group:last-child{border-bottom:none}.group-header{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;cursor:pointer;transition:background-color .2s ease}.group-header:hover{background-color:#ffffff0d}.tools-label{font-size:.9em;color:var(--text-color);font-weight:600}.chevron{width:8px;height:8px;border-style:solid;border-color:var(--text-color-secondary);border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .3s ease}.tools-group.active>.group-header .chevron{transform:rotate(-135deg)}.group-content{max-height:0;overflow:hidden;transition:max-height .3s ease-out;padding:0 10px;display:flex;flex-direction:column;gap:8px}.tools-group.active>.group-content{max-height:600px;padding:0 10px 12px}#contextual-tools-group{display:none}#contextual-tools-group.visible{display:block}.context-panel{display:none;flex-direction:column;gap:8px}.panel-button{width:100%;padding:10px;font-size:.9em;font-weight:500;color:var(--text-color-secondary);background-color:#ffffff0d;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s ease;text-align:center}.panel-button:hover{background-color:#ffffff1a;color:var(--text-color)}.panel-button:disabled{color:#666;background-color:#0003;cursor:not-allowed}.panel-button.accent{background-color:var(--accent-color);color:#fff}.panel-button.accent:hover{background-color:var(--accent-color-hover)}.panel-button.danger{background-color:transparent;border:1px solid var(--danger-color);color:var(--danger-color)}.panel-button.danger:hover{background-color:var(--danger-color);color:#fff}.furniture-button,.shape-button,.pattern-button,.wall-mode-button{width:100%;padding:8px 10px;font-size:.9em;font-weight:500;color:var(--text-color-secondary);background-color:#ffffff0d;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s ease;text-align:left}.furniture-button:hover,.shape-button:hover,.pattern-button:hover,.wall-mode-button:hover{background-color:#ffffff1a;color:var(--text-color)}.furniture-button.active,.shape-button.active,.pattern-button.active,.wall-mode-button.active{background-color:var(--accent-color);color:#fff;font-weight:600}.panel-control{display:flex;justify-content:space-between;align-items:center;font-size:.9em;color:var(--text-color-secondary);padding:4px 0}.panel-label{font-size:.9em;color:var(--text-color-secondary);margin-bottom:4px;display:block}.panel-input{width:100%;padding:8px;margin-bottom:10px;border-radius:6px;border:1px solid #444;background-color:#1c1c1f;color:#f0f0f0;font-family:inherit;font-size:.9em}.panel-input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-color) 30%,transparent)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:55%;height:4px;background:#0000004d;border-radius:4px;outline:none;transition:opacity .2s;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:var(--text-color);border-radius:50%;cursor:pointer;transition:background-color .2s}input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--text-color);border-radius:50%;cursor:pointer}input[type=range]:hover::-webkit-slider-thumb{background:var(--accent-color-hover)}#grid-snap-value,#shape-scale-value,#wall-thickness-value{font-variant-numeric:tabular-nums;min-width:2.5em;text-align:right;color:#ccc;font-size:.9em}#color-picker{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:30px;background-color:transparent;border:1px solid var(--border-color);border-radius:6px;cursor:pointer}#color-picker::-webkit-color-swatch{border-radius:5px;border:none}#color-picker::-moz-color-swatch{border-radius:5px;border:none}.switch{position:relative;display:inline-block;width:44px;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:#0000004d;transition:.4s;border-radius:24px}.slider:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--accent-color)}input:focus+.slider{box-shadow:0 0 1px var(--accent-color)}input:checked+.slider:before{transform:translate(20px)}#builder-view-container .modal-overlay{display:none;position:fixed;z-index:100;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#0009;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);justify-content:center;align-items:center;animation:fadeIn .3s ease}#builder-view-container .modal-content{background-color:#2a2a2e;padding:25px 30px;border:1px solid var(--border-color);border-radius:12px;width:90%;max-width:500px;box-shadow:0 5px 25px #00000080;animation:slideIn .4s ease-out;color:var(--text-color)}#builder-view-container .modal-content h2{margin-top:0;color:#fff}#builder-view-container .modal-content p{color:var(--text-color-secondary);font-size:.9em;line-height:1.6;margin-bottom:20px}#builder-view-container .modal-content input[type=text],.modal-content textarea{width:100%;padding:12px;margin-bottom:20px;border-radius:8px;border:1px solid #444;background-color:#1c1c1f;color:#f0f0f0;font-family:inherit;font-size:1em}#builder-view-container .modal-content input[type=text]:focus,.modal-content textarea:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-color) 30%,transparent)}#builder-view-container .modal-content textarea{resize:vertical;min-height:80px}.modal-actions{display:flex;justify-content:flex-end;gap:15px}.modal-actions button{padding:10px 20px;border-radius:8px;border:none;cursor:pointer;font-weight:600;font-size:1em;transition:all .2s ease}.modal-actions button:nth-child(1){background-color:#ffffff1a;color:#f0f0f0}.modal-actions button:nth-child(1):hover{background-color:#fff3}.modal-actions button:nth-child(2){background-color:var(--accent-color);color:#fff}.modal-actions button:nth-child(2):hover{background-color:var(--accent-color-hover)}.modal-actions button:disabled{background-color:var(--accent-color-disabled);cursor:not-allowed}#ai-generate-button,#ai-furniture-generate-button{display:flex;align-items:center;gap:8px}.spinner{width:18px;height:18px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.website-modal-content{background-color:var(--ui-panel-color);border:1px solid var(--border-color);border-radius:12px;width:90%;height:90%;max-width:1400px;box-shadow:0 5px 25px #00000080;display:flex;flex-direction:column;animation:slideIn .4s ease-out}.website-modal-header{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;border-bottom:1px solid var(--border-color);flex-shrink:0}#website-modal-title{font-weight:600;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:20px}#website-modal-close{font-size:1.5em;line-height:1;padding:0 8px;flex-shrink:0}#website-iframe{width:100%;height:100%;border:none;flex-grow:1;border-radius:0 0 12px 12px;background-color:#fff}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}#log-container{position:fixed;bottom:0;left:0;width:100%;height:200px;background-color:#141414e6;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border-top:1px solid var(--border-color);z-index:20;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .3s ease-in-out;box-shadow:0 -4px 15px #0000004d}#log-container.visible{transform:translateY(0)}#log-header{display:flex;justify-content:space-between;align-items:center;padding:8px 15px;background-color:#ffffff0d;font-weight:600;border-bottom:1px solid var(--border-color)}#log-clear-button{background:#ffffff1a;color:#eee;border:none;border-radius:4px;padding:4px 8px;cursor:pointer;transition:background-color .2s}#log-clear-button:hover{background:#fff3}#log-content{flex-grow:1;overflow-y:auto;padding:10px;font-family:Courier New,Courier,monospace;font-size:.85em;line-height:1.5;color:#ccc}.log-message{padding:2px 0;border-bottom:1px solid #333;white-space:pre-wrap;word-break:break-all}.log-message:last-child{border-bottom:none}.log-message.info{color:#f0f0f0}.log-message.success{color:#81c784}.log-message.error{color:var(--danger-color)}.log-message .timestamp{color:#888;margin-right:10px}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;background-color:var(--background-color);color:var(--text-color);padding:6px 12px;border-radius:6px;font-size:.85em;font-weight:500;white-space:nowrap;box-shadow:0 2px 8px #00000080;border:1px solid var(--border-color);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:1000}[data-tooltip]:hover:after{opacity:1;visibility:visible}[data-tooltip-position=right]:after{left:calc(100% + 12px);top:50%;transform:translateY(-50%) translate(-5px)}[data-tooltip-position=right]:hover:after{transform:translateY(-50%) translate(0)}[data-tooltip-position=bottom]:after{top:calc(100% + 12px);left:50%;transform:translate(-50%) translateY(-5px)}[data-tooltip-position=bottom]:hover:after{transform:translate(-50%) translateY(0)}
