.mag-canvas-shell{--mag-screen: var(--instrument-screen, #09131e);--mag-panel-3: #0c1723;--mag-line: var(--instrument-hairline, #29384b);--mag-line-soft: var(--instrument-hairline-soft, #202d3d);--mag-text: var(--instrument-text-strong, #e3edf7);--mag-text-2: var(--instrument-text, #bbc9d9);--mag-dim: var(--instrument-dim, #7f91a8);--mag-faint: var(--instrument-faint, #586a7f);--mag-cyan: var(--instrument-mint, #66d9d0);--mag-blue: var(--instrument-trace, #73a8ff);--mag-amber: var(--instrument-amber, #ffc968);--mag-coral: var(--instrument-trace-2, #ff8e73);position:relative;color-scheme:dark}.mag-canvas-shell.solving:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;z-index:9;background:linear-gradient(90deg,transparent,var(--mag-amber),transparent);animation:mag-scan 1.2s linear infinite;pointer-events:none}@keyframes mag-scan{0%{transform:translate(-100%)}to{transform:translate(100%)}}.mag-canvas:focus-visible{outline:2px solid var(--mag-cyan);outline-offset:-2px}.mag-canvas-shell button{cursor:pointer}.mag-canvas-shell button:disabled{cursor:not-allowed;opacity:.4}.mag-canvas-shell button:focus-visible{outline:2px solid var(--mag-cyan);outline-offset:2px}.mag-canvas{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:crosshair;background:var(--mag-screen);-webkit-user-select:none;-moz-user-select:none;user-select:none}.mag-canvas>canvas,.mag-canvas>svg{position:absolute;inset:0;display:block;width:100%;height:100%}.mag-canvas>canvas{pointer-events:none}.mag-canvas>svg{overflow:visible}.mag-grid-lines{stroke:#bed3e718;stroke-width:1;vector-effect:non-scaling-stroke}.mag-field-line{fill:none;stroke:#ffda8aad;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.mag-field-line.projected{stroke:#ffda8a7a;stroke-dasharray:5 5}.mag-field-direction{fill:#ffda8af0;stroke:none;vector-effect:non-scaling-stroke}.mag-field-direction.projected{fill:#ffda8aa8}.mag-vector-glyph{fill:#e5f1f9c4;stroke:#e5f1f9c4;stroke-width:1.1;vector-effect:non-scaling-stroke}.mag-normal-glyph{fill:none;stroke:#e5f1f9bf;stroke-width:1;vector-effect:non-scaling-stroke}.mag-normal-glyph circle+circle{fill:#e5f1f9bf;stroke:none}.mag-particle-path{fill:none;stroke:var(--mag-coral);stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px rgba(255,142,115,.5));vector-effect:non-scaling-stroke}.mag-particle-start{fill:var(--mag-screen);stroke:var(--mag-coral);stroke-width:1.7;vector-effect:non-scaling-stroke}.mag-particle-start line,.mag-particle-start path{fill:none;stroke:var(--mag-coral);stroke-width:1.6;vector-effect:non-scaling-stroke}.mag-particle-start text{fill:var(--mag-coral);stroke:none;font:600 8px/1 IBM Plex Mono,monospace}.mag-particle-start.selected circle{stroke:#fff;stroke-width:2.4;filter:drop-shadow(0 0 5px rgba(255,142,115,.8))}.mag-axis-label{position:absolute;z-index:3;color:#cfdeec99;font:500 9px/1 IBM Plex Mono,monospace;pointer-events:none}.mag-axis-x{right:12px;bottom:9px}.mag-axis-y{left:10px;top:50%;transform:rotate(-90deg) translate(-50%);transform-origin:left top}.mag-domain-readout{position:absolute;bottom:8px;color:#b0c3d485;font:400 8px/1 IBM Plex Mono,monospace;pointer-events:none}.mag-domain-readout.left{left:27px}.mag-domain-readout.right{right:45px}.mag-field-legend{position:absolute;left:34px;bottom:30px;z-index:4;display:grid;grid-template-columns:1fr 1fr;gap:5px 10px;min-width:190px;border:1px solid rgba(195,214,231,.16);border-radius:7px;padding:9px 10px;color:var(--mag-faint);background:#09131edb;backdrop-filter:blur(5px);font:400 8px/1 IBM Plex Mono,monospace;pointer-events:none}.mag-field-legend>span:first-child{grid-column:1 / -1;color:var(--mag-text-2);font-size:9px}.legend-ramp{grid-column:1 / -1;height:7px;border-radius:2px;background:linear-gradient(90deg,#071724,#0c3653,#0d707e,#25ada0,#c5cf5b,#ffcb5e)}.legend-ramp.signed{background:linear-gradient(90deg,#48a8cc,#18588a,#0a1927,#b95237,#ffc25b)}.mag-field-legend>span:last-child{text-align:right}.mag-projection-warning,.mag-trajectory-warning{position:absolute;z-index:4;right:12px;max-width:330px;border:1px solid rgba(255,201,104,.25);border-radius:6px;padding:7px 9px;color:var(--mag-amber);background:#09131ed4;font:400 8.5px/1.35 IBM Plex Mono,monospace;pointer-events:none}.mag-projection-warning{bottom:28px}.mag-trajectory-warning{bottom:60px}.mag-canvas-3d{cursor:default;background:#07111c}.mag-3d-mount{position:absolute;inset:0}.mag-3d-mount>canvas.mag-3d-renderer{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:auto;cursor:grab;touch-action:none}.mag-3d-mount>canvas.mag-3d-renderer.dragging{cursor:move}.mag-3d-plane-badge{position:absolute;z-index:5;top:12px;left:13px;display:grid;grid-template-columns:8px auto;gap:3px 8px;align-items:center;border:1px solid rgba(102,217,208,.25);border-radius:7px;padding:8px 10px;color:var(--mag-cyan);background:#07111cd1;backdrop-filter:blur(7px);pointer-events:none}.mag-3d-plane-badge i{grid-row:1 / 3;width:7px;height:7px;border-radius:50%;background:var(--mag-cyan);box-shadow:0 0 9px #66d9d0b3}.mag-3d-plane-badge span{font:600 8px/1 IBM Plex Mono,monospace;letter-spacing:.08em}.mag-3d-plane-badge small{color:var(--mag-dim);font:400 7.5px/1 IBM Plex Mono,monospace}.mag-3d-camera{position:absolute;z-index:7;top:12px;right:13px;display:flex;overflow:hidden;border:1px solid rgba(124,151,177,.28);border-radius:7px;background:#07111cd9;backdrop-filter:blur(7px)}.mag-3d-camera button{min-width:42px;border:0;border-left:1px solid rgba(124,151,177,.18);padding:8px 9px;color:var(--mag-dim);background:transparent;font:600 7.5px/1 IBM Plex Mono,monospace;letter-spacing:.04em}.mag-3d-camera button:first-child{border-left:0}.mag-3d-camera button:hover{color:var(--mag-text);background:#73a8ff17}.mag-3d-camera button.active{color:var(--mag-cyan);background:#66d9d01f}.mag-3d-help{position:absolute;z-index:5;left:50%;bottom:13px;transform:translate(-50%);max-width:calc(100% - 480px);overflow:hidden;border:1px solid rgba(124,151,177,.17);border-radius:999px;padding:7px 11px;color:#bbc9d99e;background:#07111cb3;font:400 7.5px/1 IBM Plex Mono,monospace;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.mag-direction-legend{position:absolute;z-index:5;top:13px;left:13px;display:grid;gap:4px;border:1px solid rgba(124,151,177,.2);border-radius:6px;padding:7px 9px;color:var(--mag-dim);background:#07111cc7;backdrop-filter:blur(6px);font:500 7.5px/1.2 IBM Plex Mono,monospace;pointer-events:none}.mag-direction-legend span:first-letter{font-size:11px}.mag-direction-legend .current{color:#ff9b55}.mag-direction-legend .moment{color:#73a8ff}.mag-direction-legend .field{color:#ffda8a}.mag-direction-legend-3d{top:72px}.mag-3d-label-layer{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none}.mag-3d-object-marker{position:absolute;top:0;left:0;width:17px;height:17px;border:1px solid rgba(255,142,115,.82);border-radius:50%;background:#07111c6b;box-shadow:0 0 0 3px #ff8e7314;will-change:transform}.mag-3d-object-marker.probe{border-color:#73e6c2e6;box-shadow:0 0 0 3px #73e6c214}.mag-3d-object-marker.ampere,.mag-3d-object-marker.flux{border-color:#ffc968e6;box-shadow:0 0 0 3px #ffc96814}.mag-3d-object-marker.selected{width:21px;height:21px;border:2px solid #fff;box-shadow:0 0 11px #66d9d0cc,inset 0 0 0 3px #66d9d047}.mag-3d-object-marker>span{position:absolute;top:21px;left:50%;transform:translate(-50%);border:1px solid rgba(124,151,177,.17);border-radius:4px;padding:3px 5px;color:#e3edf7db;background:#07111cc2;font:600 7px/1 IBM Plex Mono,monospace;white-space:nowrap}.mag-3d-object-marker.selected>span{color:var(--mag-cyan);border-color:#66d9d052}.mag-field-legend-3d{left:13px;bottom:13px;min-width:172px}.mag-3d-axis-legend{position:absolute;z-index:5;right:15px;bottom:14px;display:flex;gap:5px;padding:6px 7px;border:1px solid rgba(124,151,177,.18);border-radius:6px;background:#07111cbd;font:600 8px/1 IBM Plex Mono,monospace;pointer-events:none}.mag-3d-axis-legend span{width:15px;text-align:center}.mag-3d-axis-legend .x{color:#ff756d}.mag-3d-axis-legend .y{color:#7ee081}.mag-3d-axis-legend .z{color:#72a7ff}.mag-canvas-3d .mag-projection-warning{right:13px;bottom:51px}.mag-webgl-fallback-note{position:absolute;z-index:8;right:12px;bottom:12px;max-width:360px;border:1px solid rgba(255,201,104,.3);border-radius:7px;padding:8px 10px;color:var(--mag-amber);background:#09131ee6;font:400 8px/1.4 IBM Plex Mono,monospace;pointer-events:none}.mag-webgl-recovery{position:absolute;z-index:10;right:13px;bottom:51px;display:flex;max-width:min(390px,calc(100% - 26px));align-items:center;gap:10px;border:1px solid rgba(255,201,104,.38);border-radius:7px;padding:9px 10px;color:var(--mag-amber);background:#07111cf0;box-shadow:0 8px 24px #00000047;font:500 8px/1.4 IBM Plex Mono,monospace}.mag-webgl-recovery button{flex:0 0 auto;border:1px solid rgba(255,201,104,.44);border-radius:5px;padding:6px 8px;color:var(--mag-amber);background:#ffc96814;font:600 7.5px/1 IBM Plex Mono,monospace;cursor:pointer}.mag-webgl-recovery button:hover:not(:disabled){background:#ffc96829}.mag-webgl-recovery button:disabled{opacity:.55;cursor:wait}.mag-current-cross{fill:var(--mag-panel-3);stroke:var(--mag-coral);stroke-width:1.7;vector-effect:non-scaling-stroke}.mag-current-cross>circle+circle{fill:var(--mag-coral)}.mag-current-cross>path{fill:none;stroke:var(--mag-coral)}.mag-current-cross>line{stroke:var(--mag-dim);stroke-width:1.5}.mag-current-cross.inactive{stroke:var(--mag-dim);opacity:.72}.mag-current-cross text,.mag-loop text,.mag-loop-symbol text,.mag-dipole text,.mag-solenoid text,.mag-helmholtz text{fill:var(--mag-text);stroke:none;font:500 9px/1 IBM Plex Mono,monospace;text-anchor:middle}.mag-current-cross.selected>circle:first-child,.mag-loop.selected .mag-current-cross>circle:first-child{stroke:var(--mag-cyan);stroke-width:3}.mag-loop>line{stroke:#ff8e7380;stroke-width:2;stroke-dasharray:3 4;vector-effect:non-scaling-stroke}.mag-loop>circle{fill:var(--mag-cyan)}.mag-loop-symbol{fill:none;stroke:var(--mag-coral);stroke-width:2;vector-effect:non-scaling-stroke}.mag-loop-symbol.selected{stroke:var(--mag-cyan);stroke-width:3}.mag-loop-current-arrow path:first-child{fill:none;stroke:#ff9b55;stroke-width:2.4;stroke-linecap:round}.mag-loop-current-arrow path:last-child{fill:#ff9b55;stroke:none}.mag-moment-arrow{fill:#73a8ff;stroke:#73a8ff;stroke-width:1.8;vector-effect:non-scaling-stroke}.mag-moment-arrow text{fill:#73a8ff;stroke:none;font:600 9px/1 IBM Plex Mono,monospace;text-anchor:middle}.mag-moment-cross{fill:none;stroke:#73a8ff;stroke-width:1.5;vector-effect:non-scaling-stroke}.mag-moment-cross>circle+circle{fill:#73a8ff}.mag-moment-cross>path{fill:none;stroke:#73a8ff}.mag-moment-cross text{fill:#73a8ff;stroke:none;font:600 8px/1 IBM Plex Mono,monospace}.mag-dipole{fill:var(--mag-coral);stroke:var(--mag-coral);stroke-width:2;vector-effect:non-scaling-stroke}.mag-dipole circle{fill:var(--mag-panel-3)}.mag-dipole.selected{fill:var(--mag-cyan);stroke:var(--mag-cyan)}.mag-solenoid,.mag-helmholtz{fill:none;stroke:#ff8e73e6;stroke-width:1.5;vector-effect:non-scaling-stroke}.mag-solenoid.selected,.mag-helmholtz.selected{stroke:var(--mag-cyan);stroke-width:2.6}.mag-uniform-b rect{fill:#73a8ff1c;stroke:#73a8ff6b;vector-effect:non-scaling-stroke}.mag-uniform-b text{fill:var(--mag-blue);font:500 8px/1 IBM Plex Mono,monospace}.mag-uniform-b.selected rect{stroke:var(--mag-cyan);stroke-width:2}.mag-material rect{fill:#73a8ff17;stroke:#73a8ff7a;stroke-width:1.3;vector-effect:non-scaling-stroke}.mag-material text,.mag-current-region text{fill:#e2eef8b8;font:500 7.5px/1 IBM Plex Mono,monospace;text-anchor:middle;pointer-events:none}.mag-material.selected rect{stroke:var(--mag-cyan);stroke-width:2.6}.mag-current-region rect{fill:#ff8e731a;stroke:#ff8e73a6;stroke-width:1.3;vector-effect:non-scaling-stroke}.mag-current-region.selected rect{stroke:var(--mag-cyan);stroke-width:2.6}.mag-ampere{fill:none;stroke:var(--mag-amber);stroke-width:1.4;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.mag-ampere path{fill:var(--mag-amber);stroke:none}.mag-ampere text,.mag-flux text,.mag-probe text{fill:var(--mag-text);stroke:none;font:500 8px/1 IBM Plex Mono,monospace}.mag-ampere.selected{stroke-width:2.7;filter:drop-shadow(0 0 4px rgba(255,201,104,.45))}.mag-flux{fill:#66d9d009;stroke:var(--mag-cyan);stroke-width:1.35;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.mag-flux.selected{stroke-width:2.7;filter:drop-shadow(0 0 4px rgba(102,217,208,.45))}.mag-probe{fill:#09131ed1;stroke:var(--mag-cyan);stroke-width:1.4;vector-effect:non-scaling-stroke}.mag-probe>circle:last-of-type{fill:var(--mag-cyan)}.mag-probe.selected{stroke-width:2.7;filter:drop-shadow(0 0 4px rgba(102,217,208,.45))}@media(max-width:700px){.mag-3d-plane-badge small,.mag-3d-help{display:none}.mag-3d-plane-badge{top:8px;left:8px;padding:7px 8px}.mag-3d-camera{top:8px;right:8px}.mag-3d-camera button{min-width:35px;padding:7px 6px;font-size:6.5px}.mag-field-legend-3d{left:8px;bottom:8px;transform:scale(.88);transform-origin:bottom left}}@media(prefers-reduced-motion:reduce){.mag-canvas-shell.solving:after{animation:none}}
