:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#e0e0e0;background-color:#0f0f1a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden}*{margin:0;padding:0;box-sizing:border-box}.app{display:flex;flex-direction:column;height:100vh;background:#0f0f1a;color:#e0e0e0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#1a1a2e;border-bottom:1px solid #2a2a4e;overflow:hidden;flex-wrap:wrap;gap:8px}.toolbar h1{font-size:1rem;font-weight:600;color:#fff}.toolbar-buttons{display:flex;gap:8px}.toolbar-buttons button{padding:6px 12px;border:none;border-radius:4px;background:#4a90d9;color:#fff;font-size:.8rem;cursor:pointer;transition:background .2s}.toolbar-buttons button:hover{background:#3a7bc8}.toolbar-stats{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#888;flex-wrap:wrap;min-width:0}.toolbar-stats .total-count{white-space:nowrap}.toolbar-stats .wallmount-count{white-space:nowrap;padding:2px 8px;background:#ffffff1a;border-radius:10px;font-size:.75rem}.toolbar-stats .done-count{white-space:nowrap;padding:2px 8px;background:#2ecc7126;border-radius:10px;font-size:.75rem;color:#2ecc71}.toolbar-stats .weight-input{display:flex;align-items:center;gap:4px;font-size:.75rem;color:#aaa}.toolbar-stats .weight-input input{width:45px;padding:2px 4px;border:1px solid #2a2a4e;border-radius:4px;background:#0f0f1a;color:#e0e0e0;font-size:.75rem;text-align:right}.toolbar-stats .total-weight{white-space:nowrap;padding:2px 8px;background:#2ecc7133;border-radius:10px;font-size:.75rem;color:#2ecc71}.color-weight{color:#888;font-size:.65rem}.color-stats{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.color-stat{display:flex;align-items:center;gap:3px;padding:2px 6px;background:#ffffff0d;border-radius:10px}.color-dot{width:12px;height:12px;border-radius:50%;border:1px solid rgba(255,255,255,.3)}.color-count{font-size:.75rem;color:#aaa}.main-content{display:flex;flex:1;overflow:hidden}.hex-grid{flex:1;display:block}.sidebar{width:220px;background:#1a1a2e;border-left:3px solid #2a2a4e;padding:16px;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:16px}.sidebar h3{font-size:.75rem;font-weight:600;margin-bottom:8px;color:#888;text-transform:uppercase;letter-spacing:.5px}.color-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.color-swatch{width:100%;aspect-ratio:1;border:2px solid transparent;border-radius:4px;cursor:pointer;transition:transform .15s,border-color .15s}.color-swatch:hover{transform:scale(1.1)}.color-swatch.active{border-color:#fff;box-shadow:0 0 0 1px #4a90d9}.custom-color{margin-top:8px}.custom-color label{display:flex;align-items:center;gap:8px;font-size:.8rem}.custom-color input[type=color]{width:32px;height:24px;border:none;border-radius:4px;cursor:pointer;background:none}.tool-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tool-btn{padding:8px;border:1px solid #2a2a4e;border-radius:6px;background:transparent;color:#e0e0e0;font-size:1.1rem;cursor:pointer;transition:background .2s,border-color .2s}.tool-btn:hover{background:#2a2a4e}.tool-btn.active{background:#4a90d9;border-color:#4a90d9}.shape-controls{display:flex;flex-direction:column;gap:8px}.shape-controls label{display:flex;align-items:center;justify-content:space-between;font-size:.8rem}.shape-controls input[type=number]{width:60px;padding:4px 8px;border:1px solid #2a2a4e;border-radius:4px;background:#0f0f1a;color:#e0e0e0;font-size:.8rem}.generate-btn{padding:8px;border:none;border-radius:4px;background:#2ecc71;color:#fff;font-size:.8rem;cursor:pointer;transition:background .2s}.generate-btn:hover{background:#27ae60}.clear-btn{padding:8px;border:1px solid #e74c3c;border-radius:4px;background:transparent;color:#e74c3c;font-size:.8rem;cursor:pointer;transition:background .2s,color .2s}.clear-btn:hover{background:#e74c3c;color:#fff}.canvas-settings .background-presets{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.canvas-settings .color-swatch{aspect-ratio:1;width:100%;min-width:24px}.canvas-settings .custom-color{margin-top:6px}.shape-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:8px}.shape-btn{padding:6px;border:1px solid #2a2a4e;border-radius:4px;background:transparent;color:#e0e0e0;font-size:.9rem;cursor:pointer;transition:background .2s,border-color .2s}.shape-btn:hover{background:#2a2a4e}.shape-btn.active{background:#4a90d9;border-color:#4a90d9}.shape-controls .checkbox-label{display:flex;align-items:center;gap:8px;font-size:.85rem;cursor:pointer}.shape-controls .checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#4a90d9}.rotation-controls{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid #2a2a4e}.rotation-controls span{font-size:.85rem;color:#a0a0a0}.rotate-btn{width:32px;height:32px;border:1px solid #2a2a4e;border-radius:4px;background:transparent;color:#e0e0e0;font-size:1.2rem;cursor:pointer;transition:background .2s,border-color .2s;display:flex;align-items:center;justify-content:center}.rotate-btn:hover{background:#2a2a4e;border-color:#4a90d9}.wallmount-controls{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid #2a2a4e}.wallmount-controls span{font-size:.85rem;color:#a0a0a0}.wallmount-btn{padding:4px 10px;border:1px solid #2a2a4e;border-radius:4px;background:transparent;color:#e0e0e0;font-size:.8rem;cursor:pointer;transition:background .2s,border-color .2s}.wallmount-btn:hover{background:#2a2a4e}.wallmount-btn.auto:hover{border-color:#4caf50;color:#4caf50}.wallmount-btn.clear:hover{border-color:#f44336;color:#f44336}.import-controls{display:flex;flex-direction:column;gap:8px}.import-controls label{display:flex;align-items:center;justify-content:space-between;font-size:.8rem}.import-controls input[type=number]{width:60px;padding:4px 8px;border:1px solid #2a2a4e;border-radius:4px;background:#0f0f1a;color:#e0e0e0;font-size:.8rem}.upload-btn{padding:8px;border:1px dashed #4a90d9;border-radius:4px;background:transparent;color:#4a90d9;font-size:.8rem;cursor:pointer;transition:background .2s}.upload-btn:hover{background:#4a90d91a}.preview-container{border:1px solid #2a2a4e;border-radius:4px;overflow:hidden}.preview-image{width:100%;height:auto;display:block}
