.tool-grid{grid-template-columns:1fr 1fr;gap:.45rem;padding:0 .9rem .5rem;display:grid}.palette{grid-template-columns:1fr 1fr;gap:.45rem;padding:0 .9rem .4rem;display:grid}.palette-hint{color:var(--muted);margin:0;padding:0 .9rem .9rem;font-size:.74rem}.part,.tool-btn{border:1px solid var(--line);cursor:pointer;color:var(--ink);touch-action:none;background:#fff;border-radius:10px;flex-direction:column;align-items:center;gap:.3rem;padding:.5rem .3rem .4rem;transition:border-color .12s,transform .12s,box-shadow .12s,background .12s;display:flex}.part:hover,.tool-btn:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 12px #2d70b31f}.part svg,.tool-btn svg{width:44px;height:28px}.part span,.tool-btn span{font-size:.74rem;font-weight:600}.drag-ghost{z-index:1000;border:1px solid var(--line);width:auto;height:auto;color:var(--muted);opacity:.75;pointer-events:none;background:#fff;border-radius:8px;padding:4px 8px;position:fixed;transform:translate(-50%,-50%);box-shadow:0 6px 20px #1018282e}.drag-ghost.over-canvas{color:var(--accent);border-color:var(--accent);opacity:.95}.drag-ghost svg{width:44px;height:28px;display:block}.tool-btn.active{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#eff6ff}.stage{background:#fbfcfe;flex-direction:column;min-width:0;display:flex;position:relative}.sim-bar{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:.6rem;padding:.55rem .9rem;display:flex}.sim-buttons{gap:.4rem;margin-left:auto;display:inline-flex}.sim-btn{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;padding:.34rem .72rem;font-size:.82rem;font-weight:600}.sim-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sim-btn:disabled{opacity:.38;cursor:default}.sim-btn.go{color:var(--ok);background:#f0fdf4;border-color:#bbf7d0}.sim-btn.go:hover:not(:disabled){border-color:var(--ok)}.sim-btn.danger{color:var(--bad)}.sim-btn.danger:hover:not(:disabled){border-color:var(--bad);color:var(--bad);background:#fef2f2}.stage-chip{color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:.45rem;padding:.22rem .7rem;font-size:.8rem;font-weight:700;display:inline-flex}.stage-chip .stage-dot{background:var(--muted);border-radius:50%;width:8px;height:8px}.stage-chip.running{color:var(--ok);background:#f0fdf4;border-color:#bbf7d0}.stage-chip.running .stage-dot{background:var(--ok);animation:1.6s infinite stage-pulse}.stage-chip.paused{color:#b45309;background:#fffbeb;border-color:#fed7aa}.stage-chip.paused .stage-dot{background:#b45309}.stage-chip.ended{color:#b45309;background:#fffbeb;border-color:#fed7aa}.stage-chip.ended .stage-dot{background:#b45309}@keyframes stage-pulse{0%{box-shadow:0 0 #15803d73}70%{box-shadow:0 0 0 6px #15803d00}to{box-shadow:0 0 #15803d00}}.stage-count{color:var(--muted);white-space:nowrap;flex:none;font-size:.78rem}.friction-btn{border:1px solid var(--line);color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;flex:none;align-items:center;gap:.45rem;padding:.28rem .7rem;font-size:.8rem;font-weight:600;display:inline-flex}.friction-btn:hover:not(:disabled){border-color:var(--accent);color:var(--ink)}.friction-btn:disabled{opacity:.45;cursor:default}.friction-btn .friction-dot{background:var(--line);border:1px solid #cbd5e1;border-radius:50%;width:8px;height:8px}.friction-btn.on{color:#7c2d12;background:#fffbeb;border-color:#fed7aa}.friction-btn.on .friction-dot{background:#ea580c;border-color:#ea580c}.sim-bar{flex-wrap:wrap}.box-wrap{flex:1;min-height:0;position:relative}#physics-canvas{touch-action:none;width:100%;height:100%;display:block}.stage.tool-draw #physics-canvas{cursor:crosshair}.stage.tool-erase #physics-canvas{cursor:not-allowed}.stage.tool-force #physics-canvas,.stage.tool-velocity #physics-canvas{cursor:cell}.stage-banner{text-align:center;color:#7c2d12;background:#fffbeb;border:1px solid #fed7aa;border-radius:9px;max-width:40rem;padding:.55rem .85rem;font-size:.82rem;position:absolute;bottom:1.1rem;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #7c2d121f}.inspector-panel{padding:0 .9rem 1rem}.insp-title{align-items:baseline;gap:.5rem;margin:.2rem 0 .6rem;font-weight:700;display:flex}.insp-title .insp-id{color:var(--muted);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem}.insp-row{margin:.5rem 0}.insp-row label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.22rem;font-size:.72rem;display:block}.insp-value{align-items:center;gap:.45rem;display:flex}.insp-value input[type=number]{width:5.4rem}.insp-value .unit{color:var(--muted);font-size:.82rem}.insp-pair{gap:.5rem;display:flex}.insp-pair>div{flex:1}.insp-actions{flex-wrap:wrap;gap:.4rem;margin-top:.8rem;display:flex}.insp-actions button{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:#fff;border-radius:7px;padding:.3rem .65rem;font-size:.78rem}.insp-actions button:hover{border-color:var(--accent)}.insp-actions button.danger{color:var(--bad)}.insp-actions button.danger:hover{border-color:var(--bad);background:#fef2f2}.insp-reading{border:1px solid var(--line);color:var(--ink);background:#f8fafc;border-radius:8px;margin-top:.8rem;padding:.55rem .65rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.76rem;line-height:1.65}.insp-reading .k{color:var(--muted)}.insp-reading .warn{color:var(--bad)}.insp-vectors{margin-top:.6rem}.vector-chip{border:1px solid var(--line);border-radius:7px;align-items:center;gap:.4rem;margin-bottom:.3rem;padding:.25rem .45rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.73rem;display:flex}.vector-chip.force{color:#7f1d1d;background:#fef2f2;border-color:#fecaca}.vector-chip.velocity{color:#14532d;background:#f0fdf4;border-color:#bbf7d0}.vector-chip button{cursor:pointer;color:inherit;opacity:.6;background:0 0;border:0;margin-left:auto;padding:0;font-size:.8rem;line-height:1}.vector-chip button:hover{opacity:1}.insp-note{color:var(--muted);margin:.5rem 0 0;font-size:.74rem}.event-log{border-bottom:1px solid var(--line);max-height:12rem;padding:0 .9rem .8rem;overflow-y:auto}.event-entry{border-bottom:1px dashed var(--line);padding:.28rem 0;font-size:.76rem;line-height:1.5}.event-entry:last-child{border-bottom:0}.event-entry .t{color:var(--muted);margin-right:.4rem;font-family:ui-monospace,SF Mono,Menlo,monospace}.event-entry.collision .t{color:var(--accent)}.event-entry.end{color:#b45309;font-weight:600}.event-entry.rest{color:var(--ok)}
