:root{--teal:#087f82;--ink:#172e40;--muted:#526b7d;--line:#cddde4;--paper:#f2f7f9;--blue:#2266b0;--orange:#ba6715}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.55}main{max-width:1480px;margin:auto;padding:24px 32px}h1{font-size:clamp(1.8rem,3.2vw,3rem);line-height:1.18;margin:8px 0 16px}h2{font-size:1.4rem;margin:0 0 14px}h3{margin:0 0 12px}p{margin:10px 0 18px}a{color:#155d85}.site-nav,.auth-toolbar,.controls,.section-top{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.auth-toolbar{justify-content:space-between;border-bottom:1px solid var(--line);padding:0 0 12px;margin-bottom:14px}.auth-toolbar form{margin:0}.site-nav{margin:12px 0 26px}.eyebrow{color:var(--teal);font-size:.8rem;letter-spacing:.12em;font-weight:750;margin-bottom:6px}.lead{font-size:1.15rem;max-width:900px}.scope{max-width:1020px;color:var(--muted)}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;margin:20px 0;box-shadow:0 4px 14px #15384c06}.section-top{justify-content:space-between}.section-top h2{margin:0}.badge{font-size:.83rem;color:#34636c;background:#e7f4f4;border-radius:6px;padding:5px 10px}.controls{margin:12px 0}.controls label{display:flex;gap:8px;align-items:center;flex-wrap:wrap}label{display:block;font-weight:600;margin:8px 0}button,select,input{font:inherit}button,.file-button{border:1px solid #9db6c3;border-radius:7px;background:#fff;color:var(--ink);padding:9px 14px;cursor:pointer;font-weight:600}button:hover,.file-button:hover{background:#edf6f7}button:disabled{opacity:.6;cursor:wait}.solve-button{background:var(--teal);color:white;border-color:var(--teal)}.solve-button:hover{background:#06696c}select,input{border:1px solid #9db6c3;border-radius:6px;padding:8px;background:#fff;color:var(--ink);min-width:0}textarea{display:block;width:100%;min-height:280px;max-height:1000px;resize:vertical;font:14px/1.55 Consolas,monospace;padding:16px;border:1px solid #9db6c3;border-radius:8px;background:#f8fbfc;color:#18384c;tab-size:2}.muted{color:var(--muted);font-size:.9rem;font-weight:400}.notice{border-left:4px solid #bb7a27;background:#fff8e9;padding:12px}.error{color:#9d2424}#status{font-weight:650;margin-bottom:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.metric{padding:18px;background:#fff;border:1px solid var(--line);border-radius:10px}.metric strong{font-size:1.35rem;display:block}.metric span{color:var(--muted);font-size:.86rem}.result-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}.result-grid .card{margin:0}svg{width:100%;height:auto;display:block;border:1px solid #e5edf1;border-radius:8px;background:#fbfdfe}svg text{font-family:system-ui,sans-serif;fill:var(--ink)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem;margin:8px 0 18px}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid #dde7ed;white-space:nowrap}th{background:#edf5f7;font-weight:650}td code{font:13px Consolas,monospace}td:nth-child(2){white-space:normal}details summary{font-size:1.15rem;font-weight:700;cursor:pointer}details[open] summary{margin-bottom:18px}.legend,.plot-legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:.85rem;align-items:center}.legend span{width:12px;height:12px;border-radius:50%;display:inline-block}.boundary-dot{background:var(--blue)}.node-dot{background:var(--teal)}.solid-dot{background:var(--orange)}.plot-legend span{display:inline-flex;align-items:center;gap:6px}.plot-legend i{width:16px;height:4px;display:inline-block}footer{color:var(--muted);text-align:center;padding:24px}dialog{width:min(560px,94vw);border:1px solid var(--line);border-radius:14px;padding:25px;max-height:90vh;overflow-y:auto}dialog::backdrop{background:#10273888}dialog label{display:flex;justify-content:space-between;gap:12px}dialog input{width:55%}.file-button{font-size:1rem;margin:0}.file-button input{width:185px;font-size:.85rem;border:0;padding:0}.login-page{max-width:620px;padding-top:70px}.login-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px}.login-card input{display:block;width:100%;margin:5px 0 20px}.login-card h1{font-size:2rem}.login-card button{width:100%}.login-page+.card{max-width:1000px;margin:20px auto;padding:25px}[hidden]{display:none!important}:focus-visible{outline:3px solid #3da8be;outline-offset:3px}@media(max-width:1000px){.result-grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}main{padding:18px}.card{padding:18px}}@media(max-width:500px){main{padding:12px}.metrics{grid-template-columns:1fr 1fr;gap:8px}.metric{padding:12px}.metric strong{font-size:1rem}.controls{gap:8px}.controls label{width:100%}select{width:100%;max-width:100%}.section-top{align-items:flex-start}.badge{font-size:.7rem}dialog label{display:block}dialog input{width:100%}textarea{font-size:12px}.auth-toolbar{font-size:.85rem}.card{padding:15px}}

svg .node-name{fill:white}.plot-color0{background:#087f82}.plot-color1{background:#bd6519}.plot-color2{background:#754ba5}.plot-color3{background:#2866b0}.plot-color4{background:#ad3862}.plot-color5{background:#557722}.plot-color6{background:#9b532f}.plot-color7{background:#3b6481}

.parameter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 18px}.parameter-grid label{font-size:.85rem}.parameter-grid input{display:block;width:100%;margin-top:5px}.mode-tabs button[aria-pressed=true]{background:var(--ink);color:white}#field2d-canvas{display:block;width:100%;height:auto;background:#fbfdfe;border:1px solid #dce6ec;border-radius:7px;cursor:crosshair}#cell2d{font-size:.9rem;padding:12px;background:#edf6f7;border-radius:7px}.controls input[type=checkbox]{width:auto}.colorbar{margin:10px 0;width:100%;height:12px;background:linear-gradient(90deg,hsl(240 75% 45%),hsl(120 75% 45%),hsl(0 75% 45%));border-radius:4px}@media(max-width:1000px){.parameter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.parameter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.result-grid>.card{min-width:0}

#traces2d-canvas{display:block;width:100%;height:auto;background:white;border:1px solid #dce6ec;border-radius:7px}.result-grid+.result-grid{margin-top:20px}.parameter-grid select{display:block;width:100%;margin-top:5px}

#field3d-canvas,#volume3d-canvas{display:block;width:100%;height:auto;border:1px solid #dce6ec;border-radius:7px;background:#fbfdfe}.table-scroll{overflow-x:auto}.equation{font:16px/1.8 Consolas,monospace;background:#edf6f7;padding:14px;overflow-x:auto;border-radius:7px}#cell3d{font-size:.9rem;padding:12px;background:#edf6f7;border-radius:7px}.theory-nav{position:sticky;top:0;background:#f2f7fa;padding:10px;z-index:2}.theory-page section{scroll-margin-top:70px}.capabilities td{white-space:normal}
.comparison-plots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.comparison-plots canvas{width:100%;height:auto;display:block;border:1px solid #dce6ec;border-radius:7px}.comparison-plots h4{margin:10px 0}@media(max-width:900px){.comparison-plots{grid-template-columns:1fr}}

/* Shared navigation and a compact, sequential solver workspace. */
main{max-width:1240px}.site-nav{gap:4px;margin:8px 0 22px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:10px}.site-nav>a,.nav-more>summary{padding:8px 13px;text-decoration:none;font-size:.94rem;font-weight:650;border-radius:6px}.site-nav>a[aria-current=page]{background:#e6f4f3;color:#06696c}.nav-more{position:relative;margin-left:auto}.nav-more>summary{font-size:.94rem;font-weight:600}.nav-more[open]>summary{margin-bottom:0}.nav-menu{position:absolute;right:0;top:100%;z-index:20;min-width:250px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 28px #172e401c}.nav-menu a{display:block;padding:9px 12px;text-decoration:none}.nav-menu a:hover{background:#edf6f7}.step-label{font-weight:700;color:var(--muted);margin:18px 0 8px}.mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mode-tabs button{padding:13px 12px}.example-library{padding:18px 22px;margin:18px 0}.example-library h2{font-size:1.1rem;margin-bottom:5px}.example-library>p:first-of-type{margin:6px 0;font-size:.9rem;color:var(--muted)}.example-library .controls{margin:8px 0}.example-library #benchmark-note{font-size:.85rem;margin:8px 0}.example-library details{border-top:1px solid #e3ebef;padding-top:10px;margin-top:10px}.example-library summary,.input-help summary{font-size:.9rem;font-weight:600}.quick-examples button{font-size:.86rem;padding:7px 11px}.model-workspace{margin-top:16px}.model-workspace>h2{font-size:1.25rem}.input-help{margin:10px 0 16px}#sinda3d-network{max-height:760px}.theory-page .site-nav{position:static}.theory-page header>.controls{padding:12px 0;border-bottom:1px solid var(--line)}.theory-page footer a{margin:0 8px}#site-legal-disclaimer summary{font-size:.95rem}#research-presets .controls label{font-size:.9rem}
@media(max-width:600px){.site-nav{gap:0}.site-nav>a,.nav-more>summary{padding:7px 9px;font-size:.85rem}.nav-more{margin-left:0}.nav-menu{right:auto;left:0;max-width:88vw}.mode-tabs{gap:6px}.mode-tabs button{font-size:.9rem;padding:10px 6px}.example-library{padding:15px}.quick-examples{display:grid;grid-template-columns:1fr 1fr}.quick-examples button{width:100%;font-size:.8rem}.example-library .controls select{max-width:100%}.model-workspace{padding:16px}}

#sinda2d-velocity{display:block;width:100%;height:auto;background:#fbfdfe;border:1px solid #dce6ec;border-radius:7px}.controls input[id$="count2d"],.controls input[id$="velocity-count"]{width:80px}

.network-builder-controls{padding:12px 0;border-block:1px solid var(--line)}#network-component-dialog select{width:55%}.network-record-preview{white-space:pre-wrap;overflow-wrap:anywhere;background:#f2f7f9;border:1px solid var(--line);border-radius:7px;padding:12px;font:13px/1.6 Consolas,monospace}#network-shear-calculator{padding:12px;border:1px solid var(--line);border-radius:8px;margin:14px 0}#network-shear-calculator h3{font-size:1rem}@media(max-width:500px){#network-component-dialog select{width:100%}}
#turbulence-inputs pre{max-width:100%;overflow:auto;padding:16px;background:#edf6f7;border-radius:8px}#turbulence-inputs td{white-space:normal;min-width:160px}#turbulence-inputs .table-scroll{max-width:100%}.turbulence-controls{margin:18px 0;padding:14px;background:#edf6f7;border-radius:8px}


main{padding-top:18px;padding-bottom:18px}.card{margin-top:14px;margin-bottom:14px;padding:18px}h1{margin-top:5px;margin-bottom:12px}.site-nav{margin-bottom:14px}.example-library{margin:12px 0;padding:14px 18px}.controls{margin:8px 0}@media(max-width:500px){.card{padding:14px}.example-library{padding:12px}}
