:root{color-scheme:dark;--bg: #14161a;--panel-bg: #1c1f26;--border: #2b2f3a;--text: #e6e8eb;--muted: #8b93a1;--accent: #4f8cff}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Microsoft JhengHei,sans-serif}#app{display:flex;height:100vh;width:100vw}#viewport{flex:1;position:relative}#viewport canvas{display:block}#panel{width:340px;overflow-y:auto;background:var(--panel-bg);border-left:1px solid var(--border);padding:16px}#panel h1{font-size:18px;margin:0 0 12px}.block{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}.block h2{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 10px}#status{font-size:13px;color:var(--muted)}.mode-buttons{display:flex;flex-direction:column;gap:6px}button,.mode-btn{background:#262a33;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 10px;cursor:pointer;font-size:13px}button:hover{border-color:var(--accent)}.mode-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.joint-row{margin-bottom:10px}.joint-row label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:2px}.joint-row input[type=range]{width:100%}.row{display:flex;gap:6px;flex-wrap:wrap}.row input{flex:1;background:#262a33;border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 8px;font-size:13px}#rec-status{font-size:12px;color:var(--muted);margin-top:6px}#action-list{list-style:none;margin:10px 0 0;padding:0;font-size:13px}#action-list li{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}#action-list li button{padding:3px 8px;font-size:11px}#camera-view{width:100%;border-radius:6px;border:1px solid var(--border);background:#000;min-height:120px}#grasp-camera-view{width:100%;border-radius:6px;border:1px solid var(--border);background:#000;min-height:120px;cursor:crosshair;margin-bottom:8px}.row select{flex:1;background:#262a33;border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 8px;font-size:13px}#grasp-calib-status,#grasp-status{font-size:12px;color:var(--muted);margin-top:6px}
