/* Shared frame for all six configurators. */
.configurator .topbar{height:72px;padding:0 28px}
.configurator main{height:calc(100dvh - 72px);min-height:0;grid-template-columns:minmax(0,1fr) 372px}
.configurator .workspace{height:100%;min-height:0}
.configurator .controls{min-height:0;overflow-y:auto;scrollbar-gutter:stable;padding:28px 24px}
.configurator .scene-heading{top:28px;left:28px;right:28px}
.configurator h1{font-size:clamp(24px,2.8vw,38px);line-height:1.15;letter-spacing:-1px;margin:12px 0}
.configurator .category-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:14px 0 26px}
.configurator .category-tabs a{font-size:12px;line-height:1.35;min-height:46px;padding:9px 10px;color:#bdcbd5;background:#202b33}
.configurator .category-tabs a[aria-current="page"]{border-color:#ccff70;background:#303d2b;color:#ccff70;font-weight:600;box-shadow:inset 3px 0 #ccff70}
.configurator .connector-selects{margin-top:0}
.configurator .connector-selects h2{font-size:15px;line-height:1.4;margin:22px 0 14px}
.configurator .connector-selects>h2:first-child,.configurator .connector-selects>.control-section:first-child h2{margin-top:0}
.configurator .control-section{margin-bottom:22px}
.configurator input[type=number]{background:#222b33;color:#edf2f4;border:1px solid #414e58;border-radius:7px;font-size:15px;padding:11px 12px}
.configurator .number-wrap input{border:0;padding:0;width:56px}
.configurator .size-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.configurator .size-grid button{font-size:15px;min-height:44px;padding:10px 0}
.configurator .scene-badge{left:28px;bottom:120px;right:28px;max-width:none;flex-wrap:wrap;gap:6px}
.configurator .scene-badge>span:nth-child(1),.configurator .scene-badge>span:nth-child(4){font-size:20px}
.configurator .viewtools{left:auto;right:28px;bottom:58px}
.configurator .scene-footer{left:28px;right:28px;bottom:22px;font-size:11px;flex-wrap:wrap}
.configurator .scene-footer>span:first-child{max-width:none}
.configurator .help{font-size:13px;line-height:1.55}
@media(min-width:1600px){.configurator main{grid-template-columns:minmax(0,1fr) 400px}}
@media(max-width:1000px){.configurator main{grid-template-columns:minmax(0,1fr) 330px}.configurator .controls{padding:24px 18px}}
@media(max-width:760px){.configurator .topbar{height:64px;padding:0 18px}.configurator main{display:block;height:auto}.configurator .workspace{height:560px;min-height:0}.configurator .controls{overflow:visible;padding:24px 20px;border-left:0;border-top:1px solid #30373e}.configurator .scene-heading{top:24px;left:20px;right:20px}.configurator h1{font-size:28px}.configurator .scene-badge{left:20px;right:20px}.configurator .scene-footer{left:20px;right:20px}.configurator .viewtools{right:20px}.configurator .category-tabs a{min-height:44px}}
@media(max-width:380px){.configurator .brand{font-size:14px}.configurator .back-link{font-size:12px}.configurator .scene-footer{font-size:10px}}

.part-editor{margin:18px 0}.part-row{display:flex;align-items:center;gap:10px;margin-top:10px}.part-row button{flex:1;text-align:left;padding:12px;border:1px solid #414e58;border-radius:7px;background:#222b33;color:#d1dbe1}.part-row button.active{border-color:#ccff70;background:#303d29;color:#ccff70}.part-row input[type=color]{width:44px;height:42px;padding:4px;border:1px solid #414e58;border-radius:7px;background:#222b33;cursor:pointer}.part-reset{margin-top:12px;padding:0;border:0;background:none;color:#b9c7d0;text-decoration:underline;text-underline-offset:3px;font-size:12px}

.part-current{width:30px;height:30px;flex:none;border:1px solid #71818e;border-radius:6px}.part-palette{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:14px 0 10px}.part-color{height:32px;border:2px solid #64727e;border-radius:6px;cursor:pointer}.part-color[aria-pressed=true]{outline:2px solid #ccff70;outline-offset:2px}.part-color:disabled{opacity:.4;cursor:default}.part-custom{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#b9c7d0;padding:8px 10px;border:1px solid #414e58;border-radius:7px}.part-custom input{width:44px;height:30px;padding:2px;background:#222b33;border:0;cursor:pointer}

.part-row button.active{border-color:#70bfff;background:#233c50;color:#b9e1ff;box-shadow:inset 3px 0 #70bfff}.part-row button.active::after{content:" ✓";float:right;color:#70bfff}
