:root{--bg:var(--rs-surface);--panel:var(--rs-panel);--panel-strong:var(--rs-panel-strong);--ink:#111821;--muted:var(--rs-muted);--line:var(--rs-line);--blue:var(--rs-blue);--blue-dark:#0b58cf;--amber:var(--rs-amber);--green:var(--rs-green);--red:var(--rs-red);--dark:var(--rs-dark);--shadow:var(--rs-shadow);--value-font:var(--rs-value-font);--shell-card-toggle-color:var(--ink);--shell-card-toggle-padding-start:9px;--shell-card-toggle-padding-end:9px;--shell-card-toggle-background:#f8fafc;--shell-card-toggle-hover-background:#f3f7fc;--shell-card-title-size:.74rem;--shell-card-meta-max-width:118px;--shell-card-meta-color:var(--muted);--shell-card-meta-weight:850;--shell-card-meta-padding:2px 7px;--shell-card-meta-border:1px solid #d7dee9;--shell-card-meta-radius:999px;--shell-card-meta-background:#fff;--shell-card-dots-hover-opacity:.82;--shell-card-inner-gap:6px;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#physics-app{width:100%;height:100%;margin:0}body{overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.physics-topbar{background:var(--dark);color:#f8fafc;border-bottom:1px solid #252c36;grid-template-columns:160px minmax(260px,1fr) auto auto;align-items:center;gap:10px;min-height:58px;padding:8px 14px;display:grid}.back-link,.physics-actions button,.mode-tabs button,.simulation-bar button{color:#f8fafc;background:#111821;border:1px solid #3a4350;border-radius:5px;justify-content:center;align-items:center;min-height:34px;padding:0 11px;font-size:.78rem;font-weight:850;text-decoration:none;display:inline-flex}.physics-brand{gap:2px;min-width:0;display:grid}.physics-brand span{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:900;overflow:hidden}.physics-brand strong{color:#aeb8c7;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:700;overflow:hidden}.mode-tabs,.physics-actions{gap:6px;display:flex}.mode-tabs button.is-active,.physics-actions button:last-of-type,.simulation-bar button.is-active{background:linear-gradient(#1778ff,#075bd8);border-color:#4f8df7}.physics-actions .help-button{color:#dbe7f7;background:linear-gradient(#ffffff1f,#ffffff05),#141d29;border-color:#526071;width:34px;min-width:34px;padding:0;font-size:.86rem;font-weight:950}.physics-actions .help-button:hover{color:#fff;border-color:#8ab4fb}.physics-shell{grid-template-columns:340px minmax(520px,1fr) 380px;height:calc(100vh - 58px);min-height:0;display:grid}.physics-panel{background:var(--panel);min-height:0;overflow:auto}.physics-panel--left{border-right:1px solid var(--line)}.physics-panel--right{border-left:1px solid var(--line)}.physics-section{border-bottom:1px solid var(--line);gap:10px;padding:12px 14px;display:grid}.physics-section--tree{min-height:0}h1,h2,h3,p,dl{margin:0}h1{font-size:1.02rem;font-weight:900}h2{font-size:.8rem;font-weight:900}h3{font-size:.74rem;font-weight:900}.summary-strip,.viewport-readout,.analysis-results,.audit-list,.audit-group,.robot-tree,.inspector-panel{gap:8px;display:grid}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-strip__item{min-width:0}.summary-strip__item--source{grid-column:1/-1}.summary-strip__item--source strong{white-space:nowrap}.summary-strip div,.metric-grid div,.tree-card,.result-card,.audit-item,.form-card,.analysis-table-card{background:var(--panel-strong);border:1px solid #d6dce5;border-radius:6px}.summary-strip div,.metric-grid div{gap:3px;padding:8px;display:grid}.summary-strip span,.metric-grid dt,.tree-card span,.result-card span,.audit-item span,.form-field span{color:var(--muted);font-size:.68rem;font-weight:850}.summary-strip strong,.metric-grid dd{font-variant-numeric:tabular-nums;margin:0;font-size:.86rem;font-weight:900}.metric-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tree-card,.result-card,.audit-item,.form-card,.analysis-table-card{gap:6px;padding:9px;display:grid}.collapsible-card{gap:0;padding:0;overflow:hidden}.tree-card{border-left:3px solid #0000}.tree-card.is-selected{border-left-color:var(--amber);background:#fff8ea}.tree-card strong,.result-card strong,.audit-item strong{font-size:.78rem}.tree-card button,.compact-button{color:#202936;background:#fbfcfe;border:1px solid #c7ced9;border-radius:4px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:.72rem;font-weight:800;text-decoration:none;display:inline-flex}.compact-button.is-risk{color:var(--red);border-color:#efb3b1}.compact-button.is-active{color:var(--blue-dark);background:#eaf2ff;border-color:#6da0f8}.compact-button:disabled{cursor:not-allowed;opacity:.58}.urdf-export-card{align-content:start}.urdf-export-card details{gap:6px;display:grid}.urdf-export-card summary{color:var(--muted);cursor:pointer;font-size:.7rem;font-weight:850}.urdf-issue-list{color:#263241;gap:4px;margin:0;padding-left:16px;font-size:.7rem;line-height:1.35;display:grid}.urdf-export-actions,.form-actions{flex-wrap:wrap;gap:6px;display:flex}.form-grid{gap:8px;display:grid}.form-grid--two{grid-template-columns:1fr 1fr}.form-field{gap:4px;display:grid}.form-field input,.form-field select,.form-field textarea{width:100%;min-width:0;min-height:30px;color:var(--ink);background:#fff;border:1px solid #c8cfd9;border-radius:4px;padding:0 8px;font-size:.76rem;font-weight:700}.form-field textarea{resize:vertical;min-height:58px;padding:7px 8px}.form-note{color:var(--muted);font-size:.72rem;line-height:1.35}.analysis-kv{grid-template-columns:1fr 1fr;gap:6px;display:grid}.analysis-kv div{background:#f8fafc;border:1px solid #e0e5ed;border-radius:5px;gap:2px;min-width:0;padding:7px;display:grid}.analysis-kv span,.analysis-table th{color:var(--muted);font-size:.66rem;font-weight:850}.analysis-kv strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:.74rem}.table-scroll{overflow:auto}.table-scroll--fit{max-width:100%;overflow-x:hidden}.analysis-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.7rem}.analysis-table th,.analysis-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e6ebf2;padding:6px 7px}.analysis-table td{color:#202936;font-variant-numeric:tabular-nums;font-weight:750}.analysis-table tr[data-state=warn] td:first-child{border-left:3px solid var(--amber)}.analysis-table tr[data-state=risk] td:first-child{border-left:3px solid var(--red)}.analysis-table tr[data-state=ok] td:first-child{border-left:3px solid var(--green)}.analysis-table tr.is-selected td{background:#fff8ea}.analysis-table--compact{min-width:420px}.analysis-table--fit{table-layout:fixed;min-width:0}.analysis-table--fit th,.analysis-table--fit td{overflow-wrap:anywhere;word-break:break-word}.analysis-table--fit .compact-button{white-space:normal;max-width:100%;min-height:26px;padding:0 7px}.analysis-table__measure{width:58px}.analysis-table__action-col{width:76px}.analysis-table__action{text-align:right}.analysis-table--allowed-pairs td:first-child{padding-right:10px}.audit-group{background:#f8fafc;border:1px solid #d6dce5;border-radius:6px;padding:8px}.audit-item b{color:#273244}.part-assignment-groups,.part-group{gap:6px;display:grid}.part-group>span,.empty-note,.inline-check{color:var(--muted);font-size:.7rem;font-weight:800}.inline-check{align-items:center;gap:7px;min-height:28px;display:inline-flex}.part-checks{background:#fff;border:1px solid #d6dce5;border-radius:5px;max-height:148px;display:grid;overflow:auto}.part-checks label{color:#26303d;border-bottom:1px solid #eef1f5;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:6px;min-height:28px;padding:4px 8px;font-size:.72rem;font-weight:750;display:grid}.part-checks label:last-child{border-bottom:0}.physics-stage{background:radial-gradient(circle at 72% 20%,#1268e81a,#0000 32%),linear-gradient(#f8fafc,#eef2f7);min-width:0;min-height:0;position:relative;overflow:hidden}.physics-viewport,.physics-viewport canvas{width:100%;height:100%;display:block}.floating-panel,.simulation-bar{box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe0;border:1px solid #cbd5e1cc;border-radius:6px;position:absolute}.floating-panel{z-index:3;gap:0;max-width:min(340px,100% - 32px);display:grid;overflow:hidden}.floating-panel.is-dragging{z-index:12;box-shadow:0 22px 58px #141c2833}.floating-panel__bar{cursor:grab;touch-action:none;background:linear-gradient(#ffffffc7,#f6f8fbd1);border-bottom:1px solid #d3d9e3c2;grid-template-columns:minmax(0,1fr) 26px;align-items:center;min-height:29px;display:grid}.floating-panel.is-collapsed .floating-panel__bar{border-bottom-color:#0000}.floating-panel.is-dragging .floating-panel__bar,.floating-panel.is-dragging .floating-panel__grip{cursor:grabbing}.floating-panel__toggle{width:100%;min-width:0;min-height:29px;color:var(--ink);text-align:left;background:0 0;border:0;grid-template-columns:minmax(0,1fr) 14px;align-items:center;gap:7px;padding:0 2px 0 12px;display:grid}.floating-panel__toggle:hover{background:#e8eef794}.floating-panel__toggle span:first-child{color:#4f5b6b;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.7rem;font-weight:900;overflow:hidden}.floating-panel__chevron{transform-origin:50%;border-bottom:2px solid #6a7483;border-right:2px solid #6a7483;width:7px;height:7px;transition:transform .16s;transform:rotate(45deg)translateY(-1px)}.floating-panel.is-collapsed .floating-panel__chevron{transform:rotate(-45deg)}.floating-panel__grip{cursor:grab;opacity:.76;touch-action:none;background-image:radial-gradient(circle,#728093 1.05px,#0000 1.15px);background-position:50%;background-size:5px 5px;border-radius:4px;justify-self:center;width:17px;height:22px}.floating-panel__content{gap:6px;min-width:0;max-height:230px;padding:9px 13px 12px;transition:max-height .16s,padding .16s;display:grid;overflow:hidden}.floating-panel.is-collapsed .floating-panel__content{max-height:0;padding-top:0;padding-bottom:0}.physics-overlay{min-width:182px;top:18px;left:18px}.physics-overlay .floating-panel__content{gap:2px}.physics-overlay span,.viewport-readout span{color:var(--muted);font-size:.7rem;font-weight:800}.physics-overlay strong,.viewport-readout strong{font-size:.84rem;font-weight:900}.viewport-readout{min-width:min(280px,100% - 36px);top:18px;right:18px}.viewport-readout__content{gap:7px}.simulation-bar{gap:6px;padding:7px;display:flex;bottom:18px;left:50%;transform:translate(-50%)}.simulation-bar button{color:#101822;background:#fff;border-color:#c7ced9;min-height:32px}.result-card[data-state=risk],.audit-item[data-state=risk]{border-left:4px solid var(--red)}.result-card p,.audit-item p{color:var(--muted);margin:0;font-size:.72rem;line-height:1.35}.physics-help-dialog{width:min(880px,100vw - 32px);max-height:min(760px,100vh - 32px);color:var(--ink);background:#f8fafc;border:1px solid #c9d2df;border-radius:8px;padding:0;box-shadow:0 28px 86px #0a101852}.physics-help-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0b101694}.physics-help-panel{max-height:inherit;display:grid;overflow:hidden}.physics-help-header{background:linear-gradient(#fff,#f4f7fb);border-bottom:1px solid #dbe2eb;justify-content:space-between;align-items:center;gap:18px;padding:18px 20px 15px;display:flex}.physics-help-header span{color:var(--blue-dark);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:900}.physics-help-header h2{margin-top:3px;font-size:1.12rem}.help-close-button{color:#1d2734;background:#fff;border:1px solid #c7ced9;border-radius:5px;min-height:32px;padding:0 12px;font-size:.74rem;font-weight:850}.physics-help-body{grid-template-columns:1fr 1fr;gap:10px;max-height:calc(100vh - 132px);padding:16px 20px 20px;display:grid;overflow:auto}.physics-help-body section{background:#fff;border:1px solid #dbe2eb;border-radius:6px;align-content:start;gap:6px;min-width:0;padding:11px;display:grid}.physics-help-body section:first-child,.physics-help-body section:nth-child(2){grid-column:1/-1}.physics-help-body p,.physics-help-body li{color:#354153;margin:0;font-size:.78rem;font-weight:650;line-height:1.45}.physics-help-body ol{gap:5px;margin:0;padding-left:18px;display:grid}.physics-help-body b{color:var(--ink);font-weight:900}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #1268e8b8}@media (prefers-reduced-motion:reduce){.collapsible-card__content,.collapsible-card__chevron,.floating-panel__content,.floating-panel__chevron{transition:none}}@media (width<=1320px){.physics-topbar{grid-template-columns:150px minmax(180px,1fr) auto}.physics-actions{grid-column:1/-1}.physics-shell{grid-template-columns:320px minmax(460px,1fr) 340px}}@media (width<=1080px){body{overflow:auto}.physics-topbar{grid-template-columns:1fr}.mode-tabs,.physics-actions{flex-wrap:wrap}.physics-shell{grid-template-columns:1fr;height:auto}.physics-stage{order:-1;min-height:560px}.physics-help-header{align-items:flex-start;padding:15px}.physics-help-body{grid-template-columns:1fr;padding:12px 15px 15px}.physics-help-body section:first-child,.physics-help-body section:nth-child(2){grid-column:auto}}@media (width<=560px){.viewport-readout{top:116px;left:18px;right:auto}}body,input,select,button,dd,strong{font-variant-numeric:tabular-nums}.physics-topbar{gap:8px;min-height:54px;padding:6px 14px;box-shadow:inset 0 1px #ffffff0d}.back-link,.physics-actions button,.mode-tabs button,.simulation-bar button{min-height:34px;box-shadow:none;border-radius:4px}.physics-brand span{font-size:.96rem}.physics-brand strong{color:#c3ccd8}.mode-tabs,.physics-actions{gap:6px}.mode-tabs button.is-active,.physics-actions button:last-of-type,.simulation-bar button.is-active{border-color:#6aa2ff;box-shadow:inset 0 1px #ffffff2e}.physics-shell{grid-template-columns:320px minmax(520px,1fr) 360px}.physics-panel{background:var(--panel)}.physics-section{gap:9px;padding:11px 14px}.physics-section:empty,#mode-controls:empty,#robot-tree:empty,#metrics-grid:empty,#inspector-panel:empty,#analysis-results:empty,#audit-list:empty{background:linear-gradient(90deg,#0000,#cbd5e159,#0000) 0/220px 1px no-repeat;min-height:50px}.summary-strip div,.metric-grid div,.tree-card,.result-card,.audit-item,.form-card,.analysis-table-card{border-color:var(--line);box-shadow:none;border-radius:4px}.summary-strip div,.metric-grid div{padding:9px}.metric-grid dt,.summary-strip span,.viewport-readout span,.collapsible-card__meta,.analysis-table th,.audit-group h3{color:var(--muted)}.metric-grid dd,.summary-strip strong,.viewport-readout strong,.analysis-table td,.audit-item strong{font-family:var(--value-font)}.collapsible-card{border-color:var(--line);border-radius:4px}.physics-stage{background:radial-gradient(circle at 50% 42%,#ffffffc2,#0000 33%),linear-gradient(#f8fafc,#edf2f7)}.floating-panel,.simulation-bar{box-shadow:var(--shadow);background:#ffffffe6;border-color:#cbd4e0;border-radius:4px}.floating-panel__bar{background:#f8fafc;min-height:32px}.floating-panel__toggle{padding-inline:9px}.floating-panel__content{padding:9px 10px 10px}.physics-overlay{max-width:188px}.viewport-readout{max-width:230px}.simulation-bar{z-index:4;gap:6px;padding:7px;bottom:16px}.simulation-bar button{gap:0;width:38px;min-width:38px;min-height:34px;padding:0;line-height:1;position:relative}.simulation-bar__label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.simulation-bar__separator{background:linear-gradient(#0000,#64748b3d 16%,#64748ba3 50%,#64748b3d 84%,#0000);border-radius:999px;flex:0 0 1px;align-self:center;width:1px;height:26px;margin-inline:2px}.simulation-bar [data-tooltip]:before,.simulation-bar [data-tooltip]:after{z-index:30;pointer-events:none;opacity:0;transition:opacity .14s,transform .14s;position:absolute;left:50%;transform:translate(-50%,-4px)}.simulation-bar [data-tooltip]:before{content:"";border-top:5px solid #0a0f16f5;border-left:5px solid #0000;border-right:5px solid #0000;bottom:calc(100% + 2px)}.simulation-bar [data-tooltip]:after{content:attr(data-tooltip);color:#f8fafc;letter-spacing:0;text-align:center;background:#0a0f16f5;border:1px solid #ffffff1f;border-radius:6px;min-width:max-content;max-width:180px;padding:7px 9px;font-size:.68rem;font-weight:750;line-height:1;bottom:calc(100% + 7px);box-shadow:0 12px 28px #0000003d}.simulation-bar [data-tooltip]:hover:before,.simulation-bar [data-tooltip]:hover:after,.simulation-bar [data-tooltip]:focus-visible:before,.simulation-bar [data-tooltip]:focus-visible:after{opacity:1;transform:translate(-50%)}@media (width>=701px){#physics-app~.assistant-card{bottom:84px}}@media (width>=701px) and (width<=980px){#physics-app~.assistant-card{width:min(430px,100vw - 28px);max-height:min(360px,100vh - 228px);bottom:212px}}.result-card[data-state=ok],.audit-item[data-state=ok]{border-left:3px solid var(--green)}.result-card[data-state=warn],.audit-item[data-state=warn]{border-left:3px solid var(--amber)}.result-card[data-state=risk],.audit-item[data-state=risk],.audit-item[data-state=error]{border-left:3px solid var(--red)}.table-scroll{border-color:var(--line)}.compact-button{border-radius:4px}@media (width<=1320px){.physics-shell{grid-template-columns:300px minmax(460px,1fr) 330px}}@media (width<=1080px){.physics-shell{grid-template-columns:1fr}.physics-stage{min-height:620px}.physics-panel{border-inline:0}}@media (width<=560px){.physics-topbar{padding:8px 10px}.mode-tabs,.physics-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.back-link,.physics-actions button,.mode-tabs button{width:100%}.physics-stage{min-height:560px}.physics-overlay{max-width:180px;left:14px}.viewport-readout{max-width:210px;top:96px}.simulation-bar{justify-content:center;left:12px;right:12px}}.physics-panel,.physics-stage,.form-field,.form-note,.tree-card,.result-card,.audit-item,.analysis-table,.analysis-kv,.simulation-bar,.viewport-readout,.physics-overlay{font-weight:400}.form-field input,.form-field select,.form-field textarea,.analysis-table td,.analysis-kv strong,.tree-card strong,.result-card strong,.audit-item strong{font-weight:500}.tree-card button,.compact-button,.back-link,.physics-actions button,.mode-tabs button,.simulation-bar button{font-weight:600}.analysis-kv span,.analysis-table th,.collapsible-card__title,.physics-panel h2,.physics-overlay strong{font-weight:800}#physics-app{grid-template-rows:auto minmax(0,1fr);display:grid}.physics-topbar{grid-template-columns:minmax(430px,1fr) auto auto}.physics-shell{height:auto}.physics-brand{flex-wrap:wrap;align-items:center;gap:6px 9px;display:flex}.physics-brand>strong{flex-basis:100%}.page-links{flex-wrap:wrap;flex:0 auto;align-items:center;gap:6px;min-width:0;display:inline-flex}.page-link{color:#f5f7fb;white-space:nowrap;background:#0e141c;border:1px solid #3a4350;border-radius:4px;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:0 10px;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:inset 0 1px #ffffff0f}.page-link:hover{background:#17202b;border-color:#687280}.page-icon{color:currentColor;flex:0 0 18px;width:18px;height:18px;display:inline-block;position:relative}.physics-brand .page-icon{font-size:1rem;font-weight:400;overflow:visible}.page-icon:before,.page-icon:after{content:"";background:0 0;position:absolute}.page-icon--assembly:before{border-bottom:2px solid;border-left:2px solid;width:13px;height:12px;bottom:3px;left:2px}.page-icon--assembly:after{border-top:2px solid;border-right:2px solid;width:8px;height:8px;top:3px;right:2px}.page-icon--component:before{border:2px solid;border-radius:2px;width:12px;height:9px;top:6px;left:2px}.page-icon--component:after{border-top:2px solid;border-right:2px solid;width:8px;height:8px;top:2px;left:5px;transform:skewY(-22deg)}.page-icon--workbench:before{border-bottom:2px solid;border-left:2px solid;width:14px;height:11px;bottom:3px;left:2px;transform:skew(-12deg)}.page-icon--workbench:after{border-top:2px solid;width:10px;height:7px;top:5px;left:5px;transform:rotate(-8deg)}.physics-section.shell-card{border:1px solid var(--line);background:var(--panel-strong);box-shadow:none;border-radius:4px;gap:0;margin:10px;padding:0;overflow:hidden}.physics-section.shell-card+.physics-section.shell-card{margin-top:0}.physics-section.shell-card .collapsible-card__inner{padding:10px}.physics-section.shell-card.is-collapsed .collapsible-card__inner{padding-bottom:0}@media (width<=1080px){.physics-topbar{grid-template-columns:1fr}.physics-actions button,.mode-tabs button{min-width:0;padding-inline:8px}.physics-actions{grid-template-columns:1fr}}
