:root{--cru-green:#3d5042;--cru-green-bright:#5a7a5f;--cru-cream:#f4f1ea;--cru-wood:#c8a165;--cru-dark:#232520;--cru-dark-2:#2e312b;--cru-border:#3c3f38;--cru-text:#e8e4da;--cru-muted:#8f968a}html,body,#root{width:100%;height:100%;margin:0;padding:0}*{box-sizing:border-box}.layout{grid-template-columns:300px 1fr 340px;width:100vw;height:100vh;font-family:system-ui,sans-serif;display:grid}.stage{background:linear-gradient(160deg, var(--cru-cream) 0%, #ddd8cc 100%);position:relative}.brand{border-bottom:1px solid var(--cru-border);align-items:center;gap:10px;margin-bottom:4px;padding-bottom:14px;display:flex}.brand img{width:auto;height:34px}.brand .brand-text{line-height:1.1}.brand .brand-title{color:var(--cru-text);letter-spacing:.5px;font-size:15px}.brand .brand-sub{color:var(--cru-muted);text-transform:uppercase;letter-spacing:1.5px;font-size:10px}.panel{background:var(--cru-dark);color:var(--cru-text);border-right:1px solid #000;padding:16px;overflow-y:auto}.panel h1{letter-spacing:.5px;margin:0 0 16px;font-size:16px}.panel h2{text-transform:uppercase;letter-spacing:1px;color:var(--cru-muted);margin:18px 0 8px;font-size:11px}.row{justify-content:space-between;align-items:center;margin:6px 0;font-size:13px;display:flex}.row input{background:var(--cru-dark-2);border:1px solid var(--cru-border);color:#fff;border-radius:4px;width:90px;padding:4px 6px;font-family:monospace}.views{gap:6px;display:flex}.views button{background:var(--cru-dark-2);border:1px solid var(--cru-border);color:var(--cru-text);cursor:pointer;border-radius:4px;flex:1;padding:6px}.views button.active{background:var(--cru-green);border-color:var(--cru-green);color:#fff}.catalog{flex-wrap:wrap;gap:6px;display:flex}.catalog-item{background:var(--cru-dark-2);border:1px solid var(--cru-border);color:var(--cru-text);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.catalog-item:hover{background:var(--cru-border)}.swatch{border-radius:2px;flex-shrink:0;width:12px;height:12px;display:inline-block}.hint{color:var(--cru-muted);margin:6px 0 0;font-size:11px}.modules{margin:0;padding:0;list-style:none}.modules li{border-radius:4px;align-items:center;gap:6px;margin:2px 0;padding:5px 6px;font-size:12px;display:flex}.modules li.sel{background:var(--cru-green)}.modules li.empty{color:var(--cru-muted);justify-content:center}.m-label{flex:1}.m-label em{color:var(--cru-muted);font-family:monospace;font-style:normal}.src{color:var(--cru-muted);font-size:10px}.del{color:#c46;cursor:pointer;background:0 0;border:none;font-size:12px;line-height:1}.del:hover{color:#e57}.editor h2{color:var(--cru-text);justify-content:space-between;align-items:center;display:flex}.editor h3{text-transform:uppercase;letter-spacing:1px;color:var(--cru-muted);margin:14px 0 6px;font-size:11px}.slots{margin:0;padding:0;list-style:none}.slots li{align-items:center;gap:6px;margin:4px 0;display:flex}.slots li.empty{color:var(--cru-muted);font-size:12px}.slots select{background:var(--cru-dark-2);border:1px solid var(--cru-border);color:#fff;border-radius:4px;flex:1;padding:4px;font-size:12px}.add-slots{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.add-slots button{background:var(--cru-dark-2);border:1px solid var(--cru-border);color:var(--cru-text);cursor:pointer;border-radius:4px;padding:4px 8px;font-size:12px}.add-slots button:hover{background:var(--cru-border)}.toggle-all{background:var(--cru-dark-2);border:1px solid var(--cru-border);width:100%;color:var(--cru-text);cursor:pointer;border-radius:4px;padding:8px;font-size:13px}.toggle-all:hover{background:var(--cru-border)}.layers{flex-direction:column;gap:6px;display:flex}.layer{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.layer input{cursor:pointer}.legend{margin:0;padding:0;list-style:none}.legend li{align-items:center;gap:6px;margin:4px 0;font-size:12px;display:flex}.bom-panel{background:var(--cru-dark);color:var(--cru-text);border-left:1px solid #000;padding:16px;overflow-y:auto}.bom-panel h1{margin:0 0 16px;font-size:16px}.bom h2{text-transform:uppercase;letter-spacing:1px;color:var(--cru-muted);margin:18px 0 8px;font-size:11px}.bom table{border-collapse:collapse;width:100%;font-family:monospace;font-size:12px}.bom th,.bom td{text-align:right;border-bottom:1px solid var(--cru-dark-2);padding:4px 6px}.bom th:first-child,.bom td:first-child{text-align:left}.bom thead th{color:var(--cru-muted);font-weight:400}.bom tfoot td{border-top:2px solid var(--cru-border);color:#fff;border-bottom:none;font-weight:700}.cut-summary{color:var(--cru-text);margin:10px 0;font-size:12px;line-height:1.5}.cut-summary b{color:var(--cru-green-bright)}.warn{color:#e0a14a;font-size:12px}.bars{margin:10px 0 0;padding:0;list-style:none}.bars li{margin:0 0 12px}.bar-head{color:var(--cru-muted);margin-bottom:3px;font-size:11px}.bar-track{border:1px solid var(--cru-border);background:var(--cru-dark-2);border-radius:3px;height:22px;display:flex;overflow:hidden}.cut{color:#fff;white-space:nowrap;border-right:1px solid #00000059;justify-content:center;align-items:center;font-family:monospace;font-size:9px;display:flex;overflow:hidden}.cut.waste{color:#888;background:repeating-linear-gradient(45deg,#333,#333 4px,#2a2a2a 4px 8px)}.bar-sub{color:var(--cru-muted);margin-top:2px;font-size:10px}.add-3d{background:var(--cru-green);color:#fff;cursor:pointer;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;line-height:1;display:flex;box-shadow:0 2px 6px #0000004d}.add-3d:hover{background:var(--cru-green-bright)}
