:root{--primary-color: #00ffff;--bg-glass: rgba(255, 255, 255, .1);--bg-glass-hover: rgba(255, 255, 255, .2);--text-color: #ffffff;--border-radius: 12px;--panel-width: 300px}body{margin:0;overflow:hidden;background-color:#050505;font-family:Inter,Segoe UI,Roboto,sans-serif;color:var(--text-color)}#canvas-container{width:100vw;height:100vh;position:absolute;top:0;left:0;z-index:1}.ui-panel{position:absolute;top:20px;right:20px;width:var(--panel-width);background:var(--bg-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:var(--border-radius);padding:20px;z-index:10;box-shadow:0 8px 32px #0000005e;transition:transform .3s ease,opacity .3s ease}.ui-panel.hidden{transform:translate(120%)}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.panel-header h2{margin:0;font-size:1.2rem;font-weight:600}.control-group{margin-bottom:20px}.control-group label{display:block;margin-bottom:8px;font-size:.9rem;opacity:.8}.shape-selector{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:200px;overflow-y:auto}.shape-selector::-webkit-scrollbar{width:4px}.shape-selector::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:2px}.shape-btn{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:#fff;padding:8px 12px;border-radius:8px;cursor:pointer;transition:all .2s;font-size:.85rem}.shape-btn:hover{background:var(--bg-glass-hover)}.shape-btn.active{background:var(--primary-color);color:#000;border-color:var(--primary-color);font-weight:600}input[type=color]{width:100%;height:40px;border:none;border-radius:8px;cursor:pointer;background:transparent}.action-btn{width:100%;padding:10px;background:linear-gradient(45deg,#00d2ff,#3a7bd5);border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:opacity .2s}.action-btn:hover{opacity:.9}.icon-btn{background:transparent;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:4px}.show-panel-btn{position:absolute;top:20px;right:20px;z-index:9;background:var(--bg-glass);backdrop-filter:blur(10px);padding:10px 15px;border-radius:8px;border:1px solid rgba(255,255,255,.1);color:#fff;cursor:pointer}.instructions{font-size:.8rem;background:rgba(0,0,0,.2);padding:10px;border-radius:8px;margin-top:10px}.instructions ul{padding-left:20px;margin:5px 0 0}.status-waiting{color:#fc0}.status-active{color:#0f0}.status-error{color:#f44}
