html,body{min-height:100%}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#111827;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--panel:#ffffffc2;--panel-border:#64748b29;--panel-shadow:0 24px 60px #0f172a1a;--ink-soft:#374151b8;--accent:#64748b;--accent-strong:#334155;--accent-muted:#64748b24;--mesh-fill:#94a3b81f;--mesh-stroke:#6b7280;--support:#2563eb;--load:#dc2626;--node:#fff;background:radial-gradient(circle at 0 0,#94a3b829,#0000 24%),radial-gradient(circle at 100% 100%,#e2e8f0b8,#0000 30%),linear-gradient(160deg,#f8fafc 0%,#f3f4f6 56%,#e5e7eb 100%);font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,Palatino,serif;font-weight:400;line-height:1.45}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{color:inherit;cursor:pointer;background:#ffffffeb;border:1px solid #64748b2e;border-radius:999px;padding:.7rem 1rem;transition:transform .14s,background-color .14s,border-color .14s}button:hover{background:#fff;border-color:#64748b57;transform:translateY(-1px)}button:disabled{opacity:.52;cursor:not-allowed;transform:none}[hidden]{display:none!important}#app{min-height:100dvh}.app-shell{grid-template-rows:auto 1fr;gap:1rem;min-height:100%;padding:1.5rem;display:grid}.topbar,.panel,.viewport-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--panel-shadow)}.topbar{border-radius:28px;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.4rem;display:flex}.eyebrow,.panel-label,.shortcut{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin:0;font-size:.72rem}.topbar h1,.viewport-header h2{margin:.15rem 0 0;font-size:clamp(1.3rem,2vw,2.2rem);font-weight:600}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:.7rem;width:75%;display:flex}.workspace{grid-template-columns:minmax(220px,280px) minmax(0,1fr) minmax(240px,320px);gap:1rem;min-height:0;display:grid}.panel,.viewport-panel{border-radius:28px}.panel{flex-direction:column;gap:1rem;padding:1.2rem;display:flex}.panel section,.panel section{padding:.25rem 0}.tool-list,.note-stack,.stat-grid{gap:.75rem;display:grid}.control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.labelled-field,.checkbox-row{align-items:center;gap:.35rem;display:grid}.labelled-field span,.checkbox-row span{color:var(--ink-soft);font-size:.8rem}.labelled-field input,.checkbox-row input,.labelled-field select{accent-color:var(--accent)}.labelled-field input[type=number],.labelled-field select{width:100%;color:inherit;background:#fffffff5;border:1px solid #64748b2e;border-radius:16px;padding:.65rem .8rem}.control-span-2{grid-column:span 2}.checkbox-row{background:#ffffffc2;border:1px solid #64748b1f;border-radius:18px;grid-template-columns:auto 1fr;padding:.7rem .8rem}.primary-action{color:#f8fafc;background:linear-gradient(135deg,#475569f5,#1e293bfa);border-color:#0000;width:50%}.tool-button{justify-content:space-between;align-items:center;width:100%;display:flex}.tool-button-secondary{border-style:dashed}.tool-button.is-active,.status-pill.is-dirty{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#f8fafc;border-color:#0000}.viewport-panel{grid-template-rows:auto 1fr;display:grid;position:relative;overflow:hidden}.viewport-header{justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.25rem .8rem;display:flex}.status-pill{background:#ffffffe0;border:1px solid #64748b2e;border-radius:999px;padding:.55rem .9rem;font-size:.92rem}.editor-stage{min-height:0;position:relative}.editor-notice{z-index:2;color:#fff7f4;background:#8d2435eb;border-radius:18px;gap:.35rem;width:min(360px,100% - 2rem);padding:.9rem 1rem;display:grid;position:absolute;top:1rem;right:1rem;box-shadow:0 20px 44px #5b142247}.editor-notice[hidden]{display:none}.editor-notice-title{text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:.74rem}.editor-surface{cursor:crosshair;width:100%;height:100%;min-height:520px;display:block}.editor-grid line{stroke:#94a3b82e;stroke-width:1px}.mesh-element{fill:var(--mesh-fill);stroke:var(--mesh-stroke);stroke-width:1.25px}.mesh-element.selected{fill:#64748b33;stroke:var(--accent-strong)}.deformed-element{fill:#18537314;stroke:#185373e6;stroke-width:1.4px;stroke-dasharray:5 3;pointer-events:none}.displacement-vector{stroke:#185373eb;stroke-width:1.8px;pointer-events:none}.reaction-vector{stroke:#8d2435eb;stroke-width:1.8px;pointer-events:none}.mesh-node{fill:var(--node);stroke:var(--mesh-stroke);stroke-width:1.3px}.mesh-node.selected{fill:var(--accent);stroke:#fffdf8;stroke-width:1.8px}.mesh-node.staged{fill:#cbd5e1}.mesh-node.hovered{stroke:var(--accent-strong);stroke-width:2.2px}.support-marker{stroke:var(--support);stroke-width:1.5px;cursor:pointer}.support-marker.selected{stroke-width:2.2px}.support-marker-tick{stroke:var(--support);stroke-width:1.2px;pointer-events:none}.support-hit-area{fill:#0000;stroke:none}.load-arrow,.load-arrow-head{stroke:var(--load);fill:var(--load);stroke-width:1.8px;cursor:pointer}.load-arrow.selected,.load-arrow-head.selected{stroke-width:2.4px;filter:drop-shadow(0 0 4px #dc26263d)}.load-value-label{fill:var(--load);stroke:#fffffff0;stroke-width:.8px;paint-order:stroke;pointer-events:none;font-size:10px;font-weight:600}.node-label{fill:#1f1d1bcc;font-size:10px}.overlay-panel{fill:#fffffff0;stroke:#64748b29;stroke-width:1px}.overlay-title{fill:#1f1d1beb;font-size:12px;font-weight:600}.overlay-copy{fill:#1f1d1bd1;font-size:10px}.material-legend-swatch{stroke:#64748b3d;stroke-width:1px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{background:#ffffffd1;border:1px solid #64748b1f;border-radius:18px;gap:.2rem;padding:.85rem .95rem;display:grid}.stat-card span{color:var(--ink-soft);font-size:.82rem}.material-card{background:#fffc;border:1px solid #64748b1f;border-radius:20px;gap:.75rem;padding:.9rem .95rem;display:grid}.material-toolbar,.material-card-header,.material-actions{gap:.75rem;display:grid}.material-actions button,.material-kind-field select{width:100%}.material-grid{gap:.6rem}.material-field{align-content:start}.material-kind,.material-note{color:var(--ink-soft);font-size:.82rem}.material-note{font-style:italic}.field-error{color:#b91c1c;font-size:.76rem;line-height:1.3}.mesh-dialog{border:1px solid var(--panel-border);background:#fffffffa;border-radius:28px;width:min(520px,100vw - 2rem);padding:0;box-shadow:0 28px 70px #0f172a2e}.mesh-dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a3d}.mesh-dialog-body{gap:1rem;padding:1.2rem;display:grid}.mesh-dialog-header,.mesh-dialog-actions{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.mesh-dialog-header h2{margin:.15rem 0 0;font-size:1.45rem;font-weight:600}.mesh-generate-button{width:auto;min-width:180px}.selection-action{width:100%;margin-top:.9rem}.note-stack p,.material-panel p{margin:0}@media (width<=1180px){.workspace{grid-template-columns:1fr}.editor-surface{min-height:460px}.editor-notice{width:auto;left:1rem;right:1rem}}@media (width<=760px){.app-shell{padding:.9rem}.topbar{flex-direction:column;align-items:flex-start}.stat-grid{grid-template-columns:1fr 1fr}.control-grid{grid-template-columns:1fr}.control-span-2{grid-column:span 1}}
