.catalogControls {margin:10px 0 12px;}
.catalogHint {margin:0 0 10px;}
.screwBuilder > summary,.thermalOtherMaterials > summary {padding:12px 4px;cursor:pointer;}
.screwFields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 12px;}
.screwFields label {display:flex;flex-direction:column;gap:6px;min-width:0;}
.screwFields .screwFull {grid-column:1/-1;}
.screwFields .input,.screwFields .select {width:100%;min-width:0;}
.screwBuilder > button {width:100%;}
.thermalOtherMaterials,.thermalProfileHint {grid-column:1/-1;}
.thermalOtherMaterials {order:2;}
.thermalOtherMaterials .paletteGroupItems {padding:0;}
.paletteGroup .colorBtn .markerIcon {flex:0 0 20px;width:20px;height:20px;margin-left:auto;}
.paletteGroup .colorBtn {display:flex;align-items:center;gap:8px;}
.paletteGroup .colorBtn > span {min-width:0;overflow-wrap:anywhere;}
.catalogPresetTopic summary {overflow-wrap:anywhere;}
.catalogPresetTopic .presetBtn {min-height:36px;white-space:normal;overflow-wrap:anywhere;}
.catalogControls[hidden],.screwBuilder[hidden] {display:none!important;}

.paletteGroup .colorBtn > span {overflow-wrap:normal;hyphens:auto;}
/* Selected buttons already use their border and fill; keep the icon unobstructed. */
.paletteGroup .colorBtn:has(> .markerIcon)::after {display:none;}
