
.lp-wrap{max-width:100%}
.lp-panel{background:#fff;border-radius:14px;padding:24px 28px;color:#1e293b;border:1px solid #e2e8f0;box-shadow:0 2px 12px rgba(0,0,0,0.06);margin-bottom:16px}
.lp-title{font-size:24px;font-weight:800;margin-bottom:2px;color:#0f172a}
.lp-sub{font-size:14px;color:#64748b;margin-bottom:16px}
.lp-tabs{display:flex;gap:4px;background:#f1f5f9;border-radius:10px;padding:4px;margin-bottom:16px;flex-wrap:wrap}
.lp-tab{flex:1;text-align:center;padding:10px 12px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;color:#64748b;border:none;background:none;transition:all 0.2s;white-space:nowrap;min-width:0}
.lp-tab.active{background:linear-gradient(135deg,#1e3a5f,#2d5a87);color:#fff;box-shadow:0 2px 8px rgba(30,58,95,0.25)}
.lp-tab:hover:not(.active){color:#334155;background:rgba(0,0,0,0.03)}
@media(max-width:1200px){.lp-tabs{gap:3px;padding:3px;border-radius:8px}.lp-tab{flex:0 1 auto;padding:8px 14px;font-size:12px;border-radius:6px}}
@media(max-width:768px){.lp-tabs{gap:3px;padding:3px}.lp-tab{padding:7px 10px;font-size:11px}}
.lp-row{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:14px}
.lp-field{flex:1;min-width:140px}
.lp-label{display:block;font-size:11px;color:#64748b;font-weight:600;margin-bottom:4px;text-transform:uppercase;letter-spacing:0.5px}
.lp-input,.lp-select{width:100%;padding:9px 10px;font-size:15px;border:1px solid #d0d5dd;border-radius:8px;background:#f8fafc;color:#1e293b;box-sizing:border-box}
.lp-input:focus,.lp-select:focus{outline:none;border-color:#2d5a87;background:#fff;box-shadow:0 0 0 3px rgba(45,90,135,0.1)}
.lp-btn{padding:9px 20px;font-size:14px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all 0.15s}
.lp-btn-primary{background:linear-gradient(135deg,#1e3a5f,#2d5a87);color:#fff}
.lp-btn-primary:hover{box-shadow:0 2px 8px rgba(30,58,95,0.3)}
.lp-btn-outline{background:#fff;color:#2d5a87;border:1px solid #2d5a87}
.lp-btn-outline:hover{background:#f0f4ff}
.lp-btn-danger{background:#fef2f2;color:#dc2626;border:1px solid #fca5a5}
.lp-btn-sm{padding:5px 12px;font-size:12px}
.lp-divider{border:none;border-top:1px solid #e2e8f0;margin:16px 0}
.lp-preview-wrap{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.lp-preview-left{flex:1;min-width:300px}
.lp-preview-right{width:340px;min-width:300px}
.lp-canvas-wrap{background:#fafbfc;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;position:relative}
.lp-canvas-wrap canvas{display:block;width:100%;cursor:default}
.lp-parts-table{width:100%;border-collapse:collapse;font-size:13px}
.lp-parts-table th{text-align:left;padding:8px 10px;background:#f1f5f9;color:#64748b;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:0.5px;border-bottom:1px solid #e2e8f0}
.lp-parts-table td{padding:8px 10px;border-bottom:1px solid #f1f5f9;vertical-align:middle}
.lp-parts-table tr:hover{background:#f8fafc}
.lp-parts-table tr.lp-row-sel{background:#eff6ff}
.lp-part-type{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}
.lp-type-bh{background:#dbeafe;color:#1e40af}
.lp-type-cr{background:#fce7f3;color:#be185d}
.lp-type-fin{background:#d1fae5;color:#065f46}
.lp-type-rect{background:#fef3c7;color:#92400e}
.lp-type-sled{background:#e0e7ff;color:#3730a3}
.lp-export-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:14px 0}
.lp-cluster-grid{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.lp-cluster-btn{padding:4px 10px;border:1px solid #d0d5dd;border-radius:6px;background:#fff;font-size:11px;font-weight:600;color:#334155;cursor:pointer}
.lp-cluster-btn:hover{background:#f1f5f9}
.lp-cluster-btn.active{background:#2d5a87;color:#fff;border-color:#1e3a5f}
.lp-sheet-selected{outline:2px solid #2563eb;outline-offset:2px}
.lp-sheet-hint{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);font-size:11px;color:#94a3b8;background:rgba(255,255,255,0.85);padding:3px 10px;border-radius:6px;pointer-events:none}
.lp-unit-sw{display:inline-flex;border-radius:6px;border:1px solid #cbd5e1;overflow:hidden;cursor:pointer;font-size:12px;font-weight:700;line-height:1;vertical-align:middle}
.lp-unit-sw span{padding:5px 10px;transition:all 0.15s;color:#94a3b8;background:#f8fafc}
.lp-unit-sw span.active{background:#1e3a5f;color:#fff}
.lp-nest-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(248,250,252,0.92);display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;z-index:10}
.lp-nest-overlay .lp-nest-title{font-size:20px;font-weight:800;color:#0f172a;margin-bottom:6px}
.lp-nest-overlay .lp-nest-stat{font-size:14px;color:#2563eb;font-weight:600;margin-bottom:12px}
.lp-nest-overlay .lp-nest-bar-wrap{width:80%;max-width:400px;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin-bottom:14px}
.lp-nest-overlay .lp-nest-bar{height:100%;background:linear-gradient(90deg,#2563eb,#0ea5e9);border-radius:4px;transition:width 0.3s}
.lp-nest-overlay .lp-nest-best{font-size:13px;color:#16a34a;font-weight:600;margin-bottom:14px}
.lp-nest-overlay .lp-nest-stop-btn{padding:10px 32px;font-size:15px;font-weight:700;border:2px solid #dc2626;border-radius:10px;background:#fef2f2;color:#dc2626;cursor:pointer}
.lp-nest-overlay .lp-nest-stop-btn:hover{background:#fee2e2}
@media(max-width:768px){.lp-preview-wrap{flex-direction:column}.lp-preview-right{width:100%}}
.lp-wrap .select2-container{width:100%!important}
.lp-wrap .select2-selection--single{padding:5px 6px;min-height:38px;border:1px solid #d0d5dd;border-radius:8px;background:#f8fafc;font-size:13px;color:#1e293b}
.lp-wrap .select2-selection--single:focus-within{border-color:#2d5a87;box-shadow:0 0 0 3px rgba(45,90,135,0.1)}
.lp-wrap .select2-selection__rendered{line-height:26px;padding-left:4px}
.lp-wrap .select2-selection__arrow{height:36px}
.select2-results__option{font-size:13px;padding:8px 10px;border-bottom:1px solid #f1f5f9}
.select2-results__option--highlighted{background:#e8f0fe!important}
.select2-results__option--selected{background:#f0f4ff!important}
.select2-search--dropdown .select2-search__field{font-size:13px;padding:8px 10px;border-radius:4px}
.select2-dropdown{border-color:#d0d5dd;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.12)}
