.structure-model{color:var(--ink,#23282b);background:var(--paper,#f4f5f3);min-width:0;text-align:left}
.structure-model *{box-sizing:border-box}
.structure-model [hidden]{display:none!important}
.structure-model .sm-heading{padding:0 0 22px;min-height:115px}
.structure-model h3{font-family:inherit;font-weight:500;font-size:clamp(25px,2.4vw,34px);line-height:1.12;letter-spacing:-.025em;margin:0 0 12px;text-wrap:balance}
.structure-model .sm-heading p{font-size:14px;line-height:1.6;color:#626a6e;margin:0;max-width:34ch}
.structure-model button{font-family:inherit;font-weight:500;font-size:12px;line-height:1.3;min-height:44px;padding:10px 12px;border:1px solid #cbd3d3;background:transparent;color:var(--ink,#23282b);border-radius:2px;touch-action:manipulation;transition:background-color 160ms,color 160ms,border-color 160ms}
.structure-model button[aria-pressed=true]{background:var(--accent,#3d5d6d);color:#fff;border-color:var(--accent,#3d5d6d)}
.structure-model button:disabled{opacity:.48}
.structure-model button:focus-visible,.structure-model .sm-stage:focus-visible{outline:3px solid #638a9a;outline-offset:3px}
.structure-model .sm-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#e8ece9}
.structure-model .sm-mode{display:flex;gap:4px;flex-wrap:wrap}
.structure-model .sm-mode button{padding:8px 10px;border-color:transparent}
.structure-model .sm-status{font-size:11px;color:#596865;white-space:nowrap}
.structure-model .sm-stage{position:relative;height:280px;overflow:hidden;background:#e8ece9;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab}
.structure-model .sm-stage.is-dragging{cursor:grabbing}
.structure-model .sm-canvas,.structure-model .sm-diagram{position:absolute;inset:0;width:100%;height:100%}
.structure-model .sm-canvas{visibility:hidden}
.structure-model .sm-canvas canvas{display:block;width:100%;height:100%;touch-action:pan-y}
.structure-model .sm-diagram{padding:12px 0 35px}
.structure-model .sm-diagram [data-sm-svg-part]{transform-box:fill-box;transform-origin:center;transition:transform 280ms cubic-bezier(.23,1,.32,1),opacity 160ms;opacity:.55}
.structure-model .sm-diagram [data-sm-svg-part].is-selected{opacity:1}
.structure-model[data-sm-ready=true] .sm-canvas{visibility:visible}
.structure-model[data-sm-ready=true] .sm-diagram{visibility:hidden}
.structure-model .sm-launch{position:absolute;bottom:17px;left:0;right:0;display:flex;justify-content:center;pointer-events:none}
.structure-model .sm-launch button{pointer-events:auto;background:var(--ink,#23282b);color:#fff;border-color:var(--ink,#23282b);padding:12px 20px;min-width:130px}
.structure-model .sm-help{font-size:11px;line-height:1.5;min-height:46px;color:#626a6e;margin:12px 0 16px;max-width:48ch}
.structure-model .sm-parts{display:flex;gap:6px;flex-wrap:wrap;align-content:flex-start;min-height:48px}
.structure-model .sm-parts button{font-size:12px;padding:10px 12px}
.structure-model .sm-detail{padding:17px 0 20px;min-height:145px}
.structure-model .sm-detail h4{font-size:14px;line-height:1.4;font-weight:500;margin:0 0 7px}
.structure-model .sm-detail p{font-size:13px;line-height:1.65;color:#626a6e;margin:0;max-width:43ch}
.structure-model .sm-camera{display:flex;gap:5px;flex-wrap:wrap;border-top:1px solid #d8dddc;padding-top:14px}
.structure-model .sm-camera button{font-size:11px;min-height:40px;padding:9px 10px;border-color:transparent}
.structure-model .sm-camera button:last-child{margin-left:auto}
@media(hover:hover) and (pointer:fine){.structure-model button:not(:disabled):hover{background:#dbe4e5;border-color:#aabdc5}.structure-model button[aria-pressed=true]:hover,.structure-model .sm-launch button:hover{background:#486d7e;color:#fff;border-color:#486d7e}}
@media(max-width:700px){.structure-model .sm-heading{min-height:0;padding-bottom:18px}.structure-model h3{font-size:28px}.structure-model .sm-stage{height:300px}.structure-model .sm-detail{min-height:0}.structure-model .sm-camera button{min-height:44px}.structure-model .sm-heading p{max-width:none}}
@media(max-width:360px){.structure-model .sm-toolbar{padding:8px;gap:4px}.structure-model .sm-mode button{padding:8px}.structure-model .sm-stage{height:270px}.structure-model .sm-status{font-size:11px}.structure-model .sm-parts{gap:5px}.structure-model .sm-parts button{padding:10px}}
@media(prefers-reduced-motion:reduce){.structure-model *,.structure-model *::before,.structure-model *::after{transition:none!important;animation:none!important}}
