:root{color:#18252b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#18252b;--muted:#6c787d;--quiet:#96a09f;--line:#d7dedb;--line-strong:#bec9c5;--paper:#fbfcfa;--paper-warm:#f4f3ed;--stage:#f7f9f7;--navy:#183942;--navy-deep:#102c34;--teal:#087c76;--teal-dark:#075f5b;--teal-soft:#dcefeb;--amber:#c78b31;--amber-soft:#f7ebd5;--danger:#b14e48;--danger-soft:#f7e7e4;--shadow:0 12px 32px #1730331a;background:#e8ece9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100svh;overflow:hidden}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline-offset:2px;outline:2px solid #1a938c}button:disabled{cursor:not-allowed;opacity:.4}::selection{color:#fff;background:var(--teal)}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#bdc8c4 padding-box padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-track{background:0 0}.app-shell{background:var(--stage);min-height:100svh}.topbar{z-index:20;color:#eff7f4;background:linear-gradient(90deg, #ffffff08 1px, transparent 1px) 0 0 / 34px 34px, linear-gradient(var(--navy), var(--navy-deep));border-bottom:1px solid #0f282f;grid-template-columns:minmax(255px,1fr) auto minmax(540px,1fr);align-items:center;gap:24px;height:68px;padding:0 18px;display:grid;position:relative;box-shadow:0 4px 18px #0b22272e}.brand{align-items:center;gap:11px;min-width:0;display:flex}.brand-mark{color:#dff8f2;background:#ffffff14;border:1px solid #ffffff47;border-radius:11px;flex:none;place-items:center;width:38px;height:38px;display:grid;box-shadow:inset 0 0 18px #66e7d917}.brand-mark span{font-family:Georgia,serif;font-size:24px;transform:translateY(-1px)}.brand strong,.brand span{display:block}.brand strong{letter-spacing:.01em;font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:600}.brand>div:last-child>span{color:#9eb7b8;letter-spacing:.12em;text-transform:uppercase;margin-top:2px;font-size:10px}.document-name{color:#dce9e7;white-space:nowrap;background:#04181d2e;border:1px solid #ffffff1f;border-radius:8px;align-items:center;gap:8px;padding:8px 13px;font-size:12px;display:flex}.document-name small{color:#90aaa9;margin-left:5px;font-size:10px}.document-dot{background:#5ed5b5;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #5ed5b521}.top-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.top-actions button{color:#e9f1ef;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff24;border-radius:7px;height:34px}.top-actions button:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff42}.top-actions .icon-button{width:34px;padding:0;font-size:18px}.top-actions .top-button{padding:0 11px;font-size:11px;font-weight:600}.top-actions .primary-soft{color:#d8fff7;background:#1c97892e;border-color:#5dd6c347}.top-divider{background:#ffffff21;width:1px;height:22px;margin:0 3px}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.workspace{grid-template-columns:304px minmax(420px,1fr) 318px;height:calc(100svh - 68px);display:grid;overflow:hidden}.side-panel{background:var(--paper);flex-direction:column;min-width:0;display:flex;overflow:hidden}.left-panel{border-right:1px solid var(--line-strong)}.right-panel{border-left:1px solid var(--line-strong)}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:72px;min-height:72px;padding:13px 18px;display:flex}.eyebrow{color:var(--teal);letter-spacing:.16em;text-transform:uppercase;margin-bottom:3px;font-size:9px;font-weight:800;display:block}.panel-heading h2{color:var(--ink);margin:0;font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:600}.panel-index{color:#c2cbc8;font-family:Georgia,serif;font-size:23px}.tabs{border-bottom:1px solid var(--line);background:#f5f7f4;grid-template-columns:.9fr 1.2fr 1.05fr;min-height:43px;padding:0 10px;display:grid}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:10px;font-weight:650;position:relative}.tabs button:after{content:"";background:0 0;border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:8px;right:8px}.tabs button.active{color:var(--teal-dark)}.tabs button.active:after{background:var(--teal)}.tabs button span{min-width:16px;height:16px;color:var(--teal-dark);background:var(--teal-soft);border-radius:99px;place-items:center;margin-left:4px;font-size:9px;display:inline-grid}.panel-scroll{flex:1;min-height:0;padding:14px;overflow:auto}.contour-card{border:1px solid var(--line);background:#f7f9f7;border-radius:10px;align-items:flex-start;gap:10px;padding:12px;display:flex}.contour-card .status-icon{width:25px;height:25px;color:var(--muted);background:#e9edeb;border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.contour-card strong{color:var(--ink);font-size:12px;display:block}.contour-card p{color:var(--muted);margin:3px 0 0;font-size:10px;line-height:1.45}.contour-card.status-valid{background:#f0f8f5;border-color:#b8dcd4}.contour-card.status-valid .status-icon{color:#fff;background:var(--teal)}.contour-card.status-invalid,.contour-card.status-incomplete{background:#fff8f6;border-color:#edcbc5}.contour-card.status-invalid .status-icon,.contour-card.status-incomplete .status-icon{color:#fff;background:var(--danger)}.section-title-row{justify-content:space-between;align-items:center;margin:20px 2px 9px;display:flex}.section-title-row.compact{margin:0 0 10px}.section-title-row h3{color:var(--ink);letter-spacing:.02em;margin:0;font-size:11px;font-weight:750}.section-title-row>span{color:var(--quiet);text-transform:uppercase;font-size:9px;font-weight:650}.empty-panel{border:1px dashed var(--line-strong);text-align:center;background:#fafbf9;border-radius:10px;justify-items:center;padding:26px 18px;display:grid}.empty-symbol{border:1px solid var(--line);width:34px;height:34px;color:var(--teal);background:#fff;border-radius:9px;place-items:center;margin-bottom:8px;font-family:Georgia,serif;font-size:17px;display:grid}.empty-panel strong{font-size:11px}.empty-panel p{max-width:210px;color:var(--muted);margin:4px 0 0;font-size:10px;line-height:1.45}.object-list{gap:4px;display:grid}.object-list button{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:27px 1fr auto;align-items:center;gap:7px;width:100%;padding:8px 9px;display:grid}.object-list button:hover{background:#f1f5f2}.object-list button.selected{background:#edf7f4;border-color:#b5dad3}.object-glyph{width:25px;height:25px;color:var(--teal-dark);background:#e5f1ee;border-radius:7px;place-items:center;font-size:15px;display:grid}.object-list strong,.object-list small{display:block}.object-list strong{color:var(--ink);font-size:10px;font-weight:700}.object-list small{color:var(--muted);margin-top:2px;font-family:ui-monospace,Consolas,monospace;font-size:9px}.object-chevron{color:#9eaaa6;font-size:18px}.property-card{border:1px solid var(--line);background:#f8faf8;border-radius:10px;margin-top:14px;padding:12px}.coordinate-fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.coordinate-fields label{border:1px solid var(--line-strong);background:#fff;border-radius:7px;grid-template-columns:27px 1fr;align-items:center;display:grid;overflow:hidden}.coordinate-fields label>span{border-right:1px solid var(--line);color:var(--teal-dark);background:#eef4f1;align-self:stretch;place-items:center;font-family:Georgia,serif;font-size:12px;font-style:italic;display:grid}.coordinate-fields input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;padding:7px;font-family:ui-monospace,Consolas,monospace;font-size:10px}.property-help{color:var(--muted);margin:9px 0 0;font-size:9px;line-height:1.45}.workflow-guide{--guide-accent:var(--teal);--guide-dark:var(--teal-dark);--guide-border:#b8d8d2;--guide-soft:#edf8f5;border:1px solid var(--guide-border);border-left:3px solid var(--guide-accent);background:#fff;border-radius:10px;margin-top:10px;overflow:hidden;box-shadow:0 3px 10px #1c403c0d}.workflow-guide.tone-amber{--guide-accent:#c58a2d;--guide-dark:#81520f;--guide-border:#e1c99c;--guide-soft:#fff7e7}.workflow-guide.tone-navy{--guide-accent:#315c69;--guide-dark:#173b45;--guide-border:#bfd0d4;--guide-soft:#eef4f5}.workflow-guide summary{min-height:51px;color:var(--guide-dark);background:linear-gradient(110deg, var(--guide-soft), #fff 72%);cursor:pointer;grid-template-columns:29px minmax(0,1fr) 15px;align-items:center;gap:8px;padding:8px 9px;list-style:none;display:grid}.workflow-guide summary::-webkit-details-marker{display:none}.workflow-guide summary:focus-visible{outline:2px solid var(--guide-accent);outline-offset:-2px}.workflow-guide-icon{color:#fff;background:var(--guide-accent);width:29px;height:29px;box-shadow:0 3px 8px color-mix(in srgb, var(--guide-accent) 24%, transparent);border-radius:8px;place-items:center;font-family:Georgia,serif;font-size:15px;font-weight:700;display:grid}.workflow-guide summary strong,.workflow-guide summary small{display:block}.workflow-guide summary strong{font-size:9px}.workflow-guide summary small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:7px;font-weight:500;overflow:hidden}.workflow-guide summary i{color:var(--guide-accent);font-size:15px;font-style:normal;transition:transform .16s;transform:rotate(-90deg)}.workflow-guide[open] summary i{transform:rotate(0)}.workflow-guide-body{border-top:1px solid var(--guide-border);padding:10px}.workflow-guide-body>p{color:#5f706c;margin:0 0 9px;font-size:8px;line-height:1.48}.workflow-guide-body ol{gap:7px;margin:0;padding:0;list-style:none;display:grid}.workflow-guide-body li{grid-template-columns:19px minmax(0,1fr);align-items:start;gap:7px;display:grid}.workflow-guide-body li>b{border:1px solid var(--guide-border);width:19px;height:19px;color:var(--guide-dark);background:var(--guide-soft);border-radius:50%;place-items:center;font-family:ui-monospace,Consolas,monospace;font-size:7px;display:grid}.workflow-guide-body li strong,.workflow-guide-body li small{display:block}.workflow-guide-body li strong{color:var(--ink);font-size:8px}.workflow-guide-body li small{color:var(--muted);margin-top:2px;font-size:7.5px;font-weight:400;line-height:1.42}.workflow-ready{border:1px dashed var(--guide-border);background:var(--guide-soft);border-radius:7px;gap:3px;margin-top:9px;padding:7px 8px;display:grid}.workflow-ready span{color:var(--guide-dark);letter-spacing:.08em;text-transform:uppercase;font-size:7px;font-weight:800}.workflow-ready p{color:#536762;margin:0;font-size:7.5px;line-height:1.42}.info-banner{background:#eef8f5;border:1px solid #b7d9d3;border-radius:9px;align-items:flex-start;gap:9px;padding:11px;display:flex}.info-banner.muted{border-color:var(--line);background:#f6f7f4;margin-top:12px}.info-mark{color:#fff;background:var(--teal);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-family:Georgia,serif;font-size:12px;font-weight:700;display:grid}.info-banner p{color:#45615d;margin:0;font-size:10px;line-height:1.45}.field-label{color:var(--muted);gap:5px;font-size:10px;font-weight:650;display:grid}.field-label input,.field-label select{border:1px solid var(--line-strong);width:100%;min-width:0;height:34px;color:var(--ink);background:#fff;border-radius:7px;padding:0 9px;font-size:11px}.total-modes-field{margin-top:16px}.number-with-unit{position:relative}.number-with-unit input{padding-right:72px}.number-with-unit small{color:var(--quiet);font-size:9px;position:absolute;top:10px;right:10px}.multipole-list{gap:7px;display:grid}.multipole-list article{border:1px solid var(--line);background:#fafbf9;border-radius:9px;grid-template-columns:32px 1fr auto;align-items:center;gap:9px;padding:9px;display:grid}.multipole-id{color:#8a5c14;background:var(--amber-soft);border:1px solid #e1c389;border-radius:50%;place-items:center;width:31px;height:31px;font-family:Georgia,serif;font-size:10px;font-weight:700;display:grid}.multipole-list strong,.multipole-list span{display:block}.multipole-list strong{font-size:9px}.multipole-list span{color:var(--muted);margin-top:3px;font-size:9px}.multipole-list b{color:var(--teal-dark);font-family:ui-monospace,Consolas,monospace;font-size:11px}.formula-preview{border:1px solid var(--line);background:var(--paper-warm);border-radius:10px;gap:12px;padding:18px;display:grid}.formula-preview span,.formula-preview small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:9px}.formula-preview code{color:var(--navy);font-family:Georgia,serif;font-size:17px;font-style:italic}.stage{background:var(--stage);grid-template-rows:56px minmax(0,1fr) 29px;min-width:0;min-height:0;display:grid;position:relative}.stage-toolbar{z-index:8;border-bottom:1px solid var(--line-strong);background:#fbfcfaf5;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex;position:relative;box-shadow:0 2px 8px #1934350d}.tool-group,.view-controls{align-items:center;gap:5px;display:flex}.tool-group button,.fit-button{height:38px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:0 9px;font-size:10px;font-weight:650;display:flex}.tool-group button:hover,.fit-button:hover{border-color:var(--line);background:#f2f5f2}.tool-group button.active{color:var(--teal-dark);background:#e9f5f2;border-color:#b0d7d0;box-shadow:inset 0 0 0 1px #ffffffa6}.tool-glyph{color:currentColor;text-align:center;width:20px;font-family:Georgia,serif;font-size:17px}.tool-group kbd{color:#8b9693;text-align:center;background:#fff;border:1px solid #cfd7d4;border-radius:4px;min-width:15px;padding:1px 3px;font-family:ui-monospace,Consolas,monospace;font-size:8px;font-weight:500}.switch-label{color:var(--muted);cursor:pointer;align-items:center;gap:7px;font-size:9px;font-weight:650;display:flex}.switch-label input{opacity:0;pointer-events:none;position:absolute}.switch{background:#bdc8c4;border-radius:99px;width:28px;height:16px;transition:background .14s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .14s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000038}.switch-label input:checked+.switch{background:var(--teal)}.switch-label input:checked+.switch:after{transform:translate(12px)}.fit-button{border-color:var(--line);background:#fff;height:32px}.draft-banner{z-index:7;color:#365c57;box-shadow:var(--shadow);white-space:nowrap;background:#f8fffcf2;border:1px solid #b7d9d3;border-radius:9px;align-items:center;gap:12px;padding:8px 10px 8px 13px;font-size:9px;display:flex;position:absolute;top:67px;left:50%;transform:translate(-50%)}.draft-banner>span:first-child{color:var(--teal-dark);font-weight:800}.draft-banner button{color:var(--danger);background:var(--danger-soft);cursor:pointer;border:0;border-radius:5px;padding:4px 7px;font-size:9px;font-weight:700}.geometry-canvas{background:#f8faf8;min-width:0;min-height:0;position:relative;overflow:hidden}.geometry-svg{touch-action:none;-webkit-user-select:none;user-select:none;outline:none;display:block}.geometry-svg.tool-pan,.geometry-svg.tool-select{cursor:grab}.geometry-svg.tool-pan:active,.geometry-svg.tool-select:active{cursor:grabbing}.geometry-svg.tool-point,.geometry-svg.tool-polygon{cursor:crosshair}.minor-grid line{stroke:#dfe5e2;stroke-width:1px;vector-effect:non-scaling-stroke}.axes line{stroke:#72827f;stroke-width:1.25px;vector-effect:non-scaling-stroke}.axis-labels text{fill:#8d9996;font-family:ui-monospace,Consolas,monospace;font-size:9px}.axis-labels .origin-label{fill:#65736f;font-weight:700}.domain-fill{fill:#1e95892b;stroke:none;pointer-events:none}.domain-edge{fill:none;stroke:var(--teal);stroke-width:2.3px;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}.draft-geometry polyline,.draft-geometry line{fill:none;stroke:#c58c34;stroke-width:2px;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.draft-geometry circle{fill:#fff;stroke:#c58c34;stroke-width:2px;vector-effect:non-scaling-stroke}.draft-geometry circle.draft-start{fill:#f8e9cc;stroke-width:2.5px}.vertex-dot{fill:#fff;stroke:var(--teal-dark);stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.vertex-dot.selected{fill:var(--teal);stroke:#fff}.vertex-halo{fill:#11877d1f;stroke:#72bdb4;stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.vertex-label{fill:#4d625f;paint-order:stroke;stroke:#f7f9f7;stroke-width:3px;stroke-linejoin:round;pointer-events:none;font-family:ui-monospace,Consolas,monospace;font-size:9px;font-weight:700}.multipole-markers circle{fill:#f8ebd2e0;stroke:#c28a32;stroke-width:1.5px;vector-effect:non-scaling-stroke}.multipole-markers line{stroke:#a36f20;stroke-width:1.5px;vector-effect:non-scaling-stroke}.multipole-markers text{fill:#8c5a0e;paint-order:stroke;stroke:#f7f9f7;stroke-width:3px;font-family:ui-monospace,Consolas,monospace;font-size:9px;font-weight:800}.snap-indicator{pointer-events:none}.snap-indicator>circle{fill:#ffffffbd;stroke:#c38529;stroke-width:1.5px}.snap-indicator>line{stroke:#c38529;stroke-width:1px}.snap-indicator rect{fill:#183942;opacity:.93}.snap-indicator text{fill:#f1f8f6;font-size:9px;font-weight:600}.canvas-corner-note{color:#84918d;pointer-events:none;background:#ffffffd4;border:1px solid #c5cfcbd1;border-radius:7px;gap:12px;padding:6px 9px;font-size:8px;display:flex;position:absolute;bottom:11px;right:12px}.statusbar{border-top:1px solid var(--line-strong);color:#71807c;white-space:nowrap;background:#f2f5f2;align-items:center;gap:15px;padding:0 12px;font-size:8px;display:flex}.statusbar>div{align-items:center;gap:5px;display:flex}.statusbar b{color:#465651;font-family:ui-monospace,Consolas,monospace;font-weight:650}.statusbar .status-spacer{flex:1}.status-dot{background:#9da8a5;border-radius:50%;width:7px;height:7px}.status-dot.status-valid{background:var(--teal)}.status-dot.status-invalid,.status-dot.status-incomplete{background:var(--danger)}.snap-status{color:#a06919;text-overflow:ellipsis;max-width:190px;overflow:hidden}.solver-status-banner{background:#fff9ed;border:1px solid #e5cc9e;border-radius:9px;align-items:flex-start;gap:9px;margin:13px 13px 0;padding:11px;display:flex}.demo-badge{color:#fff;background:var(--amber);letter-spacing:.08em;border-radius:4px;align-items:center;height:19px;padding:0 6px;font-size:8px;font-weight:850;display:inline-flex}.solver-status-banner strong{color:#79551d;font-size:10px;display:block}.solver-status-banner p{color:#876f49;margin:3px 0 0;font-size:9px;line-height:1.4}.solver-connection-card{border:1px solid var(--line);background:#f8faf8;border-radius:8px;margin:7px 13px 0;overflow:hidden}.solver-connection-card summary{color:#536963;cursor:pointer;grid-template-columns:minmax(0,1fr) auto 12px;align-items:center;gap:7px;min-height:32px;padding:0 9px;list-style:none;display:grid}.solver-connection-card summary::-webkit-details-marker{display:none}.solver-connection-card summary span{min-width:0;font-size:9px;font-weight:750}.solver-connection-card summary small{max-width:112px;color:var(--quiet);text-overflow:ellipsis;white-space:nowrap;font-size:7px;overflow:hidden}.solver-connection-card summary i{color:#78918b;font-size:12px;font-style:normal;transition:transform .15s}.solver-connection-card[open] summary{border-bottom:1px solid var(--line)}.solver-connection-card[open] summary i{transform:rotate(180deg)}.solver-connection-body{gap:8px;padding:9px;display:grid}.solver-connection-body label{color:var(--muted);gap:4px;font-size:8px;font-weight:700;display:grid}.solver-connection-body input{border:1px solid var(--line-strong);width:100%;min-width:0;height:31px;color:var(--ink);background:#fff;border-radius:6px;padding:0 8px;font-family:ui-monospace,Consolas,monospace;font-size:9px}.solver-connection-body label small{color:var(--quiet);font-size:7px;font-weight:500;line-height:1.35}.solver-connect-button{color:#fff;background:var(--teal);cursor:pointer;border:1px solid #0c7770;border-radius:7px;min-height:31px;font-size:9px;font-weight:800}.solver-connect-button:hover{background:var(--teal-dark)}.solver-scroll{padding-top:12px}.problem-card{border:1px solid var(--line);text-align:center;background:linear-gradient(135deg,#077c760d,#0000 55%),#f8faf8;border-radius:10px;padding:16px}.equation{color:var(--navy);letter-spacing:.02em;font-family:Georgia,Times New Roman,serif;font-size:23px;font-style:italic}.equation-boundary{color:var(--muted);margin-top:4px;font-family:Georgia,serif;font-size:12px;font-style:italic}.problem-tags{flex-wrap:wrap;justify-content:center;gap:5px;margin-top:13px;display:flex}.problem-tags span{color:#55706c;background:#fff;border:1px solid #d4dfdb;border-radius:99px;padding:4px 7px;font-size:8px;font-weight:650}.settings-section{margin-top:17px}.settings-section>.field-label{margin-top:10px}.range-row{grid-template-columns:1fr 14px 1fr;align-items:end;gap:6px;display:grid}.range-dash{height:34px;color:var(--quiet);place-items:center;display:grid}.expert-settings{border:1px solid var(--line);background:#fafbf9;border-radius:9px;margin-top:14px}.expert-settings summary{color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;padding:11px;font-size:10px;font-weight:700;list-style:none;display:flex}.expert-settings summary::-webkit-details-marker{display:none}.expert-settings summary small{color:var(--quiet);font-family:ui-monospace,Consolas,monospace;font-size:8px;font-weight:500}.expert-settings[open] summary{border-bottom:1px solid var(--line)}.expert-grid{grid-template-columns:repeat(3,1fr);gap:7px;padding:11px 11px 0;display:grid}.expert-settings>p{color:var(--muted);margin:9px 11px 12px;font-size:8px;line-height:1.45}.compute-button{color:#fff;cursor:pointer;background:linear-gradient(#10867f,#08726d);border:1px solid #075a56;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;height:42px;margin-top:14px;font-size:11px;font-weight:750;display:flex;box-shadow:0 5px 12px #08726d2e}.compute-button:hover{background:linear-gradient(#0e7b75,#066863)}.compute-icon{font-size:9px}.solver-notice{color:#7a5b2a;background:#fff9ed;border:1px solid #e5cc9e;border-radius:7px;margin-top:9px;padding:9px 10px;font-size:9px;line-height:1.45}.results-placeholder{border-top:1px solid var(--line);margin-top:18px;padding-top:15px}.signal-placeholder{border:1px solid var(--line);background:linear-gradient(#e6ece9 1px,#0000 1px) 0 0/100% 23px,#f8faf8;border-radius:9px;justify-content:space-between;align-items:end;gap:4px;height:92px;padding:12px 13px 0;display:flex;overflow:hidden}.signal-placeholder i{background:linear-gradient(#b4cfca,#dce7e4);border-radius:4px 4px 0 0;width:7px}.results-placeholder>strong{color:var(--ink);margin-top:10px;font-size:10px;display:block}.results-placeholder>p{color:var(--muted);margin:4px 0 16px;font-size:9px;line-height:1.45}@media (width<=1320px){.workspace{grid-template-columns:274px minmax(390px,1fr) 294px}.topbar{grid-template-columns:minmax(230px,1fr) auto minmax(470px,1fr);gap:14px}.tool-group button{padding:0 7px}.tool-group kbd{display:none}}@media (width<=1080px){.workspace{grid-template-columns:minmax(500px,1fr) 294px}.left-panel{display:none}.topbar{grid-template-columns:minmax(220px,1fr) auto}.document-name{display:none}}@media (width<=760px){body{overflow:auto}.topbar{grid-template-columns:1fr;gap:8px;height:auto;min-height:62px;padding:10px 12px}.brand>div:last-child>span,.top-actions .top-button:not(.primary-soft),.top-divider{display:none}.top-actions{position:absolute;top:14px;right:12px}.workspace{grid-template-columns:1fr;height:calc(100svh - 62px)}.right-panel{display:none}.stage-toolbar{overflow-x:auto}.tool-group button>span:not(.tool-glyph),.view-controls .switch-label,.canvas-corner-note{display:none}}.workspace{grid-template-columns:336px minmax(460px,1fr) 390px}.panel-scroll{padding-bottom:28px}.template-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.template-grid button{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fafbf9;border-radius:9px;grid-template-rows:auto auto;grid-template-columns:28px 1fr;align-items:center;gap:1px 8px;min-height:67px;padding:9px;display:grid}.template-grid button:hover{background:#eef7f4;border-color:#a9d0c9}.template-grid button>span{color:var(--teal);text-align:center;grid-row:1/3;font-family:Georgia,serif;font-size:23px}.template-grid b{color:var(--ink);align-self:end;font-size:10px}.template-grid small{color:var(--quiet);align-self:start;font-size:8px}.secondary-button,.text-button,.delete-button{border:1px solid var(--line-strong);color:#53635f;cursor:pointer;background:#fff;border-radius:7px;font-size:9px;font-weight:700}.secondary-button{min-height:31px;padding:0 9px}.secondary-button:hover,.text-button:hover{color:var(--teal-dark);background:#eef7f4;border-color:#9acac1}.full-button{width:100%;margin-top:10px}.text-button{color:var(--teal-dark);background:0 0;border-color:#0000;padding:4px 7px}.delete-button{min-height:31px;color:var(--danger);background:#fff8f6;border-color:#e5bbb5;padding:0 9px}.precision-card .field-label{margin-top:2px}.snap-presets{grid-template-columns:repeat(5,1fr);gap:4px;margin-top:7px;display:grid}.snap-presets button{border:1px solid var(--line);height:26px;color:var(--muted);cursor:pointer;background:#fff;border-radius:6px;padding:0;font-family:ui-monospace,Consolas,monospace;font-size:8px}.snap-presets button.active{color:var(--teal-dark);background:#e9f5f2;border-color:#8fc7be}.wide-select{border:1px solid var(--line-strong);width:100%;height:35px;color:var(--ink);background:#fff;border-radius:7px;padding:0 9px;font-size:10px}.segment-editor,.multipole-editor{gap:11px;display:grid}.property-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.property-title strong,.property-title small{display:block}.property-title strong{color:var(--ink);font-size:10px}.property-title small{color:var(--quiet);margin-top:2px;font-size:8px}.mini-toggle{color:var(--muted);white-space:nowrap;align-items:center;gap:5px;font-size:8px;display:inline-flex}.mini-toggle input,.check-row input{accent-color:var(--teal)}.kind-switch,.segmented-control,.quality-control{border:1px solid var(--line);background:#edf1ee;border-radius:8px;gap:3px;padding:3px;display:grid}.kind-switch{grid-template-columns:repeat(2,1fr)}.segmented-control{grid-template-columns:1fr 1fr}.quality-control{grid-template-columns:repeat(3,1fr)}.kind-switch button,.segmented-control button,.quality-control button{min-height:29px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:3px 6px;font-size:8px;font-weight:700}.kind-switch button.active,.segmented-control button.active,.quality-control button.active{color:var(--teal-dark);background:#fff;box-shadow:0 1px 4px #1a36361a}.parameter-range{grid-template-columns:1fr 1fr;gap:7px;display:grid}.parameter-range.triple{grid-template-columns:repeat(3,minmax(0,1fr))}.formula-fields{gap:8px;display:grid}.formula-field input{font-family:ui-monospace,Consolas,monospace;font-size:10px}.parameter-heading{margin-top:3px}.parameter-list{gap:6px;display:grid}.parameter-list>div{grid-template-columns:52px 1fr 27px;align-items:end;gap:5px;display:grid}.parameter-name{border:1px solid var(--line-strong);width:100%;height:34px;color:var(--teal-dark);text-align:center;background:#fff;border-radius:7px;padding:0 7px;font-family:ui-monospace,Consolas,monospace;font-size:10px;font-weight:700}.compact-delete{width:27px;height:34px;min-height:34px;padding:0}.multipole-summary{background:linear-gradient(135deg,#fffaf0,#f7ebd5);border:1px solid #e1c389;border-radius:10px;grid-template-rows:auto auto;grid-template-columns:46px 1fr;align-items:center;padding:13px;display:grid}.multipole-summary>span{color:#9a6920;grid-row:1/3;font-family:Georgia,serif;font-size:19px}.multipole-summary strong{color:#70490f;font-family:ui-monospace,Consolas,monospace;font-size:19px}.multipole-summary small{color:#9b7b4b;font-size:8px}.action-grid{grid-template-columns:1fr 1fr;gap:6px;margin-top:9px;display:grid}.action-grid button{border:1px solid var(--line);min-height:34px;color:var(--teal-dark);cursor:pointer;background:#f8fbf9;border-radius:7px;padding:5px 7px;font-size:8px;font-weight:700}.action-grid button:first-child{grid-column:1/3}.manual-corner-actions button:first-child{grid-column:auto}.action-grid button:disabled{color:#9aa5a2;cursor:not-allowed;background:#f0f2f0}.corner-finder-card{background:linear-gradient(145deg,#19897d12,#0000 58%),#f8fbfa;border:1px solid #cbdad6;border-radius:10px;gap:8px;margin-top:9px;padding:10px;display:grid}.corner-finder-heading{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.corner-finder-heading strong,.corner-finder-heading small{display:block}.corner-finder-heading strong{color:var(--ink);font-size:9px}.corner-finder-heading small{color:var(--quiet);margin-top:2px;font-size:7px}.corner-finder-heading>span{color:#55736e;white-space:nowrap;background:#e6f2ef;border-radius:99px;padding:3px 6px;font-size:7px;font-weight:750}.corner-finder-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.corner-finder-grid button{min-width:0;min-height:55px;color:var(--teal-dark);text-align:left;cursor:pointer;background:#ffffffd1;border:1px solid #cbd9d6;border-radius:8px;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:6px;padding:7px;display:grid;position:relative}.corner-finder-grid button:hover{background:#fff;border-color:#7fbdb4;box-shadow:0 4px 11px #1874691a}.corner-finder-grid button:nth-child(2){color:#855719;border-color:#dfccaa}.corner-finder-grid button:nth-child(2):hover{border-color:#c9994e}.corner-glyph{color:#fff;background:var(--teal);border-radius:6px;place-items:center;height:27px;font-family:Georgia,serif;font-size:15px;display:grid}.corner-finder-grid button:nth-child(2) .corner-glyph{background:#c58a2d}.corner-finder-grid button span:nth-child(2){min-width:0}.corner-finder-grid button strong,.corner-finder-grid button small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.corner-finder-grid button strong{font-size:8px}.corner-finder-grid button small{color:var(--quiet);margin-top:3px;font-family:ui-monospace,Consolas,monospace;font-size:7px}.corner-finder-grid button b{color:#fff;background:#739b94;border-radius:99px;place-items:center;min-width:14px;height:14px;font-size:7px;display:grid;position:absolute;top:4px;right:6px}.corner-finder-grid button:nth-child(2) b{background:#c58a2d}.corner-finder-card>p{color:var(--muted);gap:3px;margin:0;font-size:7px;line-height:1.4;display:grid}.corner-finder-card>p code{color:#456e68;font-family:ui-monospace,Consolas,monospace;font-weight:750}.multipole-list.interactive button{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fafbf9;border-radius:9px;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;width:100%;padding:8px;display:grid}.multipole-list.interactive button.selected{background:#fff8e9;border-color:#d3b06c}.multipole-list.interactive button>span:nth-child(2){min-width:0}.multipole-list.interactive button strong,.multipole-list.interactive button small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.multipole-list.interactive button strong{color:var(--ink);font-size:9px}.multipole-list.interactive button small{color:var(--muted);margin-top:3px;font-size:8px}.multipole-list.interactive button b{color:var(--teal-dark);font-family:ui-monospace,Consolas,monospace;font-size:9px}.name-input{width:100%;min-width:0;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:6px;padding:5px 7px;font-size:10px;font-weight:700}.name-input:hover,.name-input:focus{border-color:var(--line);background:#fff}.check-row{color:var(--muted);align-items:flex-start;gap:7px;font-size:9px;line-height:1.4;display:flex}.property-actions{grid-template-columns:1fr auto;gap:6px;display:grid}.geometry-svg{z-index:2;position:relative}.mode-field-layer{z-index:1;pointer-events:none;position:absolute;inset:0}.canvas-background{fill:#0000}.domain-segments polyline{fill:none;stroke:var(--teal);stroke-width:2.35px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}.domain-segments polyline.selected{stroke:#c17c20;stroke-width:3.35px}.domain-segments polyline.inactive{stroke-dasharray:7 5;opacity:.58}.interior-points circle{fill:#57736e;opacity:.35;pointer-events:none}.circle-preview circle,.circle-preview line{fill:none;stroke:#c58c34;stroke-width:1.7px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.circle-preview circle:nth-child(2){fill:#fff;stroke-dasharray:none}.vertex-dot.free{stroke:#73817e;stroke-dasharray:2 1}.geometry-svg.tool-circle,.geometry-svg.tool-arc{cursor:crosshair}.health-light{background:var(--amber);border-radius:50%;flex:none;width:8px;height:8px;margin-top:3px;box-shadow:0 0 0 4px #c78b311f}.solver-status-banner.online{background:#f0f8f5;border-color:#b8dcd4}.solver-status-banner.online strong{color:var(--teal-dark)}.solver-status-banner.online p{color:#57746e}.solver-status-banner.online .health-light{background:#31a786;box-shadow:0 0 0 4px #31a7861f}.solver-status-banner>div{flex:1;min-width:0}.health-refresh{color:#697a76;cursor:pointer;background:#fff9;border:1px solid #62736f2e;border-radius:6px;width:25px;height:25px;padding:0}.settings-section .range-row,.settings-section .parameter-range,.settings-section>.segmented-control,.settings-section>.quality-control{margin-top:8px}.core-parameters{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.field-label input:disabled,.field-label select:disabled{color:#77827f;background:#edf0ee}.diagnostics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.expert-select{margin:8px 11px 0}.validation-list{color:#844842;background:#fff8f6;border:1px solid #edcbc5;border-radius:8px;margin-top:12px;padding:10px;font-size:9px}.validation-list strong{margin-bottom:4px;display:block}.validation-list p{margin:3px 0;line-height:1.35}.compute-button.computing{background:linear-gradient(#b95b53,#9f4842);border-color:#8e3e39}.export-request{margin-top:7px}.job-status{background:#f0f8f5;border:1px solid #b8dcd4;border-radius:8px;align-items:flex-start;gap:9px;margin-top:12px;padding:10px;display:flex}.job-status.status-error{background:#fff8f6;border-color:#edcbc5}.job-status strong,.job-status p{margin:0;font-size:9px;display:block}.job-status p{color:var(--muted);white-space:pre-line;margin-top:3px;line-height:1.4}.job-spinner{border:2px solid #b9d8d2;border-top-color:var(--teal);border-radius:50%;flex:none;width:12px;height:12px;margin-top:2px;animation:.8s linear infinite spin}.job-status.status-error .job-spinner{border:0;border-radius:0;animation:none}.job-status.status-error .job-spinner:after{content:"!";color:var(--danger);font-weight:900}@keyframes spin{to{transform:rotate(360deg)}}.results-section{border-top:1px solid var(--line);margin-top:18px;padding-top:2px}.result-plot{border:1px solid var(--line);background:#f8faf8;border-radius:9px;margin:0 0 10px;padding:10px}.result-plot figcaption{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px;display:flex}.result-plot figcaption strong{color:var(--ink);font-size:9px}.result-plot figcaption span{color:var(--quiet);font-family:ui-monospace,Consolas,monospace;font-size:8px}.result-plot svg{width:100%;height:auto;display:block;overflow:visible}.plot-axis{stroke:#8d9996;stroke-width:1px}.plot-grid{stroke:#dfe5e2;stroke-width:1px}.plot-line{fill:none;stroke:var(--teal);stroke-width:2px}.plot-line.secondary{stroke:#b47a25;stroke-width:1.6px}.plot-marker{stroke:#c17c20;stroke-width:1px;stroke-dasharray:3 3}.plot-marker-dot{fill:#c17c20}.plot-label{fill:#7d8986;font-family:ui-monospace,Consolas,monospace;font-size:8px}.compact-plot{margin-top:9px}.mode-tabs{gap:5px;padding-bottom:4px;display:flex;overflow-x:auto}.mode-tabs button{border:1px solid var(--line);min-width:74px;color:var(--muted);text-align:left;cursor:pointer;background:#fff;border-radius:7px;padding:7px 8px;font-size:8px;font-weight:800}.mode-tabs button small{margin-top:3px;font-family:ui-monospace,Consolas,monospace;font-size:7px;font-weight:500;display:block}.mode-tabs button.active{color:var(--teal-dark);background:#e9f5f2;border-color:#8fc7be}.mode-card{grid-template-columns:1fr 1fr;gap:6px;margin-top:9px;display:grid}.mode-card>div{border:1px solid var(--line);background:#fafbf9;border-radius:8px;padding:9px}.mode-card span,.mode-card strong{display:block}.mode-card span{color:var(--quiet);font-size:8px}.mode-card strong{color:var(--ink);margin-top:3px;font-family:ui-monospace,Consolas,monospace;font-size:10px}.mode-card .epsilon-value{background:#fff9ed;border-color:#e1c389}.guarantee-card{background:#f0f8f5;border:1px solid #b8dcd4;border-radius:8px;gap:4px;margin-top:7px;padding:10px;display:grid}.guarantee-card span,.guarantee-card small{color:#5c736e;font-size:8px}.guarantee-card strong{color:var(--teal-dark);font-family:ui-monospace,Consolas,monospace;font-size:10px}.mode-overlay-toggle{margin:9px 1px}.diagnostic-table{border-top:1px solid var(--line);margin:8px 0 0}.diagnostic-table>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:7px 2px;font-size:8px;display:flex}.diagnostic-table dt{color:var(--muted)}.diagnostic-table dd{color:var(--ink);margin:0;font-family:ui-monospace,Consolas,monospace}@media (width<=1450px){.workspace{grid-template-columns:310px minmax(430px,1fr) 356px}.topbar{grid-template-columns:minmax(240px,1fr) auto minmax(500px,1fr)}.tool-group button{padding-inline:6px}}@media (width<=1160px){.workspace{grid-template-columns:minmax(520px,1fr) 356px}.left-panel{display:none}}.arc-control{pointer-events:none}.arc-control>line{stroke:#bd7c22;stroke-width:1.35px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.arc-control-origin{fill:#fff9ed;stroke:#bd7c22;stroke-width:1.2px;vector-effect:non-scaling-stroke}.arc-control-halo{fill:#ca892821;stroke:#bd7c225c;stroke-width:1px;pointer-events:all;cursor:ns-resize}.arc-control-handle{fill:#fff7e8;stroke:#b87317;stroke-width:2.2px;vector-effect:non-scaling-stroke;pointer-events:all;cursor:ns-resize}.arc-control text{fill:#8a570e;paint-order:stroke;stroke:#f7f9f7;stroke-width:3px;pointer-events:none;font-family:ui-monospace,Consolas,monospace;font-size:9px;font-weight:800}.arc-editor{background:linear-gradient(145deg,#fffaf0,#fbf5e9);border:1px solid #e4c891;border-radius:9px;gap:8px;padding:10px;display:grid}.arc-angle-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px;display:grid}.arc-flip-button{color:#82540f;cursor:pointer;background:#fff;border:1px solid #dfc18a;border-radius:7px;height:35px;padding:0 8px;font-size:8px;font-weight:750}.arc-presets{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.arc-presets button{color:#806334;cursor:pointer;background:#ffffffb8;border:1px solid #e4d2ad;border-radius:6px;min-height:25px;font-family:ui-monospace,Consolas,monospace;font-size:8px}.arc-presets button.active{color:#70440b;background:#f7e5c2;border-color:#bf7d21;box-shadow:inset 0 0 0 1px #bf7d211c}.arc-metrics{gap:4px;margin:0;display:grid}.arc-metrics>div{color:#846f4f;justify-content:space-between;gap:8px;font-size:8px;display:flex}.arc-metrics dd{color:#5f471f;text-align:right;margin:0;font-family:ui-monospace,Consolas,monospace}.vertex-selection-note{color:var(--muted);background:#f8faf8;border:1px dashed #d1d9d6;border-radius:7px;gap:3px;margin-top:7px;padding:8px 9px;font-size:8px;display:grid}.vertex-selection-note span{color:var(--ink);font-weight:750}.vertex-selection-note.selected{color:#55736e;background:#eef8f5;border-style:solid;border-color:#b7d9d3}.method-card-grid{grid-template-columns:1fr 1fr;gap:6px;margin-top:8px;display:grid}.method-choice{border:1px solid var(--line-strong);min-width:0;min-height:67px;color:var(--muted);text-align:left;cursor:pointer;background:#f7f9f7;border-radius:9px;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:7px;padding:9px;display:grid;position:relative}.method-choice:hover{background:#fff;border-color:#aabdb8}.method-choice.active{color:var(--teal-dark);background:linear-gradient(145deg,#fff,#eaf6f3);border-color:#7fbdb4;box-shadow:0 5px 13px #1874691f}.method-choice.collocation.active{color:#875817;background:linear-gradient(145deg,#fff,#fff4de);border-color:#d4ae69;box-shadow:0 5px 13px #a8701b1f}.method-symbol{color:#fff;background:#7e9691;border-radius:7px;place-items:center;height:31px;font-family:Georgia,serif;font-size:17px;font-weight:700;display:grid}.method-choice.active .method-symbol{background:var(--teal)}.method-choice.collocation.active .method-symbol{letter-spacing:1px;background:#c58a2d;font-size:10px}.method-choice strong,.method-choice small{display:block}.method-choice strong{color:currentColor;text-overflow:ellipsis;font-size:9px;overflow:hidden}.method-choice small{color:var(--quiet);margin-top:3px;font-size:7px;line-height:1.2}.method-choice i{color:currentColor;font-size:8px;font-style:normal;position:absolute;top:5px;right:7px}.method-identity-card{border:1px solid #b8dcd5;border-left:3px solid var(--teal);background:#f0f8f5;border-radius:8px;margin-top:7px;padding:10px}.method-collocation .method-identity-card{background:#fff9ed;border-color:#e2cda4 #e2cda4 #e2cda4 #c58a2d}.method-collocation .panel-heading .eyebrow{color:#a46b19}.method-identity-card>div:first-child{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.method-identity-card>div:first-child span{color:#59736f;font-size:8px;font-weight:750}.method-collocation .method-identity-card>div:first-child span{color:#806536}.method-identity-card>div:first-child strong{color:var(--teal-dark);white-space:nowrap;font-family:Georgia,serif;font-size:12px}.method-collocation .method-identity-card>div:first-child strong{color:#865612}.method-identity-card p{color:#637873;margin:7px 0;font-size:8px;line-height:1.42}.method-collocation .method-identity-card p{color:#806f51}.method-chips{flex-wrap:wrap;gap:4px;display:flex}.method-chips span{color:#486d67;background:#ffffffb8;border:1px solid #55827a30;border-radius:99px;padding:3px 6px;font-family:ui-monospace,Consolas,monospace;font-size:7px}.method-collocation .method-chips span{color:#795317;border-color:#a06f2330}.quality-explainer{background:#f8faf8;border:1px solid #d6dfdc;border-radius:8px;gap:5px;margin-top:7px;padding:9px;display:grid}.quality-explainer>div{justify-content:space-between;gap:8px;display:flex}.quality-explainer strong{color:var(--ink);font-size:9px}.quality-explainer>div span{color:var(--teal-dark);font-family:ui-monospace,Consolas,monospace;font-size:8px;font-weight:750}.quality-explainer p,.quality-explainer small{color:var(--muted);margin:0;font-size:8px;line-height:1.38}.quality-explainer code{color:#385d58;white-space:normal;background:#edf3f1;border-radius:5px;padding:6px;font-family:ui-monospace,Consolas,monospace;font-size:7px;line-height:1.45;display:block}.quality-explainer.quality-precise{background:#fffaf0;border-color:#d9c59b}@media (width<=1280px){.method-choice{grid-template-columns:26px minmax(0,1fr);gap:5px;padding:7px}.method-symbol{height:28px}}
