.gipsy-canvas{background-color:transparent;bottom:0;overflow:hidden;height:1500px;width:1500px}.canvasContainer,.gipsy-canvas{padding:0;margin:0;top:0;left:0;border:0;position:absolute}.canvasContainer{overflow:scroll}#toolbar{margin:0;padding-top:10px;padding-left:20px;top:0;left:160px;right:0;overflow:hidden;z-index:1000;background-color:#3f51b5;box-shadow:0 2px 5px rgba(0,0,0,.26)}#toolbar,#toolbar_hint{position:absolute;height:64px}#toolbar_hint{top:19px;right:40px;color:#fff;opacity:.5}#toolbar_hint a{color:#fff}#propertyPane{position:fixed;right:0;top:64px;width:290px}#palettePane,#propertyPane{border-right:1px solid #e0e0e0;bottom:0;background:#fff;color:#333;display:block;font-family:RobotoDraft,sans-serif;z-index:4}.palette_node_element{border:1px solid gray;background-color:#f3f3f3;padding:3px;cursor:move;width:60px;margin:5px;text-align:center;border-radius:5px}.blueprint-container{display:flex;flex-direction:column}.blueprint-container .badge{background-color:#949393}.blueprint-container .toolbar{flex-shrink:0;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;padding:10px;margin-bottom:10px}.blueprint-container .toolbar h3{margin:0;color:#495057;font-size:18px;font-weight:600}.blueprint-container .panel-group .panel{margin-bottom:2px;border-radius:4px}.blueprint-container .panel-heading{padding:0}.blueprint-container .panel-title a{display:block;padding:10px 15px;text-decoration:none;color:#333;font-size:14px;font-weight:500}.blueprint-container .panel-title a:hover{text-decoration:none;background-color:#f5f5f5}.blueprint-container .panel-title a:focus{text-decoration:none}.blueprint-container .panel-body{padding:5px}.blueprint-container .palette-icons-grid{display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-start;align-items:flex-start}.blueprint-container .palette-icon{width:54px;height:54px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border:1px solid #e9ecef;border-radius:6px;background:#f8f9fa;cursor:pointer;transition:all .2s ease;box-sizing:border-box}.blueprint-container .palette-icon:hover{border-color:#007bff;background:#e7f3ff;transform:translateY(1px);box-shadow:0 2px 4px rgba(0,123,255,.2)}.blueprint-container .palette-icon img{max-width:48px;max-height:48px;width:auto;height:auto;-o-object-fit:contain;object-fit:contain}.cad-editor-container{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;margin:0;width:100%;min-height:100vh}.cad-editor-container .col-md-2{padding-right:0}.cad-controls{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:10px;margin-bottom:10px;box-shadow:0 1px 1px rgba(0,0,0,.05);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cad-controls .form-group{margin-bottom:0}.cad-controls .btn-group{margin:0;position:relative}.cad-controls .btn-group:not(:last-child):after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:1px;height:24px;background-color:#ddd}.cad-controls .btn-group:last-child{margin:0}.cad-controls .drawing-style-flex:not(:last-child):after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:1px;height:24px;background-color:#ddd}.cad-controls .btn.btn-primary{background-color:#337ab7;border-color:#2e6da4}.cad-controls .btn.btn-danger{background-color:#d9534f}.cad-controls .btn.btn-warning{background-color:#f0ad4e}.cad-controls .btn.btn-success{background-color:#5cb85c}.drawing-style-flex{display:flex;align-items:center;gap:5px}.drawing-style-flex .input-group{margin:0}.drawing-style-flex .color-input{width:40px;height:34px;padding:2px}.drawing-style-flex .stroke-width-wrapper{position:relative}.stroke-width-wrapper{display:inline-block;vertical-align:top;position:relative;margin-left:5px}.stroke-width-range{width:80px;height:34px;vertical-align:top}.stroke-width-badge{position:absolute;top:-8px;right:-8px;background-color:#5bc0de;color:#fff;border-radius:10px;padding:2px 6px;font-size:10px;font-weight:700;min-width:25px;text-align:center}.btn-group .btn-group-badge{position:relative;display:inline-block;vertical-align:top}.btn-group .btn-group-badge .badge{position:absolute;top:-8px;right:-8px;background-color:#5bc0de;color:#fff;border-radius:10px;padding:3px 7px;font-size:11px;font-weight:700;min-width:30px;text-align:center}.cad-controls .pull-right{margin-left:auto}.cad-canvas-container,.canvas-wrapper{position:relative;overflow:hidden}.canvas-wrapper{width:100%;background:transparent;display:flex;justify-content:center;align-items:center;transform-origin:center center;z-index:3}.canvas-wrapper.landscape{aspect-ratio:297/210;max-height:60vh}.canvas-wrapper:not(.landscape){aspect-ratio:210/297;max-height:70vh}.canvas-content{position:relative;transform-origin:center center;transition:transform .1s ease-out;display:inline-block;z-index:4}.background-grid-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.main-canvas{border:2px solid #333!important;box-sizing:border-box;z-index:5;display:block;position:relative}.clearfix:after{content:"";display:table;clear:both}.text-center{text-align:center}.text-muted{color:#777}.line-category-header{padding:8px 15px 4px 15px;font-size:11px;color:#666;background-color:#f5f5f5;border-bottom:1px solid #eee}.cad-line-option{padding-left:20px}.cad-preview{width:30px!important;margin-right:15px!important}.line-style-combo{position:relative;display:inline-block}.line-style-dropdown{position:absolute;top:100%;left:0;z-index:1000;min-width:240px;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 10px rgba(0,0,0,.1);margin-top:2px;max-height:400px;overflow-y:auto}.line-style-option{display:block;padding:8px 15px;border:none;background:#fff;width:100%;text-align:left;cursor:pointer;border-bottom:1px solid #eee;transition:background-color .2s}.line-style-option:hover{background-color:#f8f9fa}.line-style-option:last-child{border-bottom:none}.line-style-option.active{background-color:#337ab7;color:#fff}.line-preview{display:inline-block;width:40px;height:2px;background:currentColor;margin-right:10px;vertical-align:middle}.line-preview.dotted{background:repeating-linear-gradient(90deg,currentColor 0,currentColor 2px,transparent 0,transparent 4px)}.line-preview.dashed{background:repeating-linear-gradient(90deg,currentColor 0,currentColor 10px,transparent 0,transparent 15px)}.line-preview.dash-dot{background:repeating-linear-gradient(90deg,currentColor 0,currentColor 10px,transparent 0,transparent 15px,currentColor 0,currentColor 17px,transparent 0,transparent 22px)}.line-preview.long-dash{background:repeating-linear-gradient(90deg,currentColor 0,currentColor 20px,transparent 0,transparent 30px)}.line-style-label{margin-left:5px;font-size:11px;color:#666}@media(max-width:768px){.cad-editor-container{padding:10px}.cad-controls .btn-group{display:block;width:100%;margin-bottom:10px;margin-right:0}.cad-controls .btn-group .btn{display:block;width:100%;margin-bottom:5px}.cad-controls .pull-right{float:none}.canvas-wrapper{max-height:50vh}.line-style-label{display:none}}@media(max-width:480px){.cad-editor-container{padding:5px}.canvas-wrapper{max-height:40vh}}.legend-item-row:last-child{margin-bottom:0}.legend-item-row .row{align-items:center}.legend-editor-container{position:relative}.legend-editor-container .modal-lg{width:900px}.legend-editor-container .modal-header{background-color:#f8f9fa;border-bottom:2px solid #e9ecef}.legend-editor-container .modal-title{color:#495057;font-weight:600}.legend-editor-container .modal-body{max-height:70vh;overflow-y:auto}.canvas-object-info{background-color:#e7f3ff;border:1px solid #b8daff;border-radius:4px;padding:8px;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column}.legend-items-container{background-color:#fff;border:2px solid #e9ecef;border-radius:8px;padding:20px;margin-bottom:15px;max-height:350px;overflow-y:auto}.legend-item-row{margin-bottom:15px;transition:all .2s ease}.legend-item-row.selected{background-color:#e7f3ff;border:1px solid #007bff;border-radius:4px;padding:5px;margin:10px -5px}.legend-item-separator{margin:15px 0;border-color:#e9ecef}.legend-move-controls{padding:5px!important}.legend-move-controls .btn-group{display:flex;justify-content:center}.legend-move-controls .btn-group .btn{padding:2px 6px;line-height:1.2;border-radius:0;font-size:11px}.legend-move-controls .btn-group .btn:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.legend-move-controls .btn-group .btn:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.legend-move-controls .btn-group .btn:disabled{opacity:.3;cursor:not-allowed}.legend-move-controls .btn-group .btn:not(:disabled):hover{background-color:#e9ecef;border-color:#ced4da}.legend-move-controls .fa{font-size:10px}.legend-item-preview{max-width:32px;max-height:32px;width:auto;height:auto;-o-object-fit:contain;object-fit:contain;border:1px solid #dee2e6;border-radius:4px;padding:2px;background-color:#fff}.legend-item-icon{font-size:24px;color:#6c757d;padding:4px;height:32px}.legend-item-icon,.legend-line-preview{border:1px solid #dee2e6;border-radius:4px;background-color:#fff;width:32px;display:inline-flex;align-items:center;justify-content:center}.legend-line-preview{height:16px;padding:2px}.legend-line-preview svg{width:100%;height:100%}.legend-empty-state{padding:40px 20px;color:#6c757d}.legend-empty-state i{opacity:.5}.legend-preview-container{background-color:#f8f9fa;border:2px solid #007bff;border-radius:8px;padding:10px;min-height:200px;max-height:250px;overflow:hidden;display:flex;justify-content:center;align-items:center}.legend-editor-container .form-control.input-sm{height:30px;font-size:12px}.legend-editor-container .btn.btn-xs{padding:2px 8px;font-size:11px}.legend-editor-container .btn.btn-sm{padding:5px 12px;font-size:12px}.legend-editor-container .form-group{margin-bottom:20px}.legend-editor-container .form-group:last-child{margin-bottom:0}.legend-editor-container .form-group label{font-weight:600;color:#495057;margin-bottom:8px}.legend-editor-container .form-group label i{margin-right:5px;color:#6c757d}.legend-editor-container .badge{background-color:#6c757d;color:#fff;font-size:10px;padding:2px 6px;border-radius:10px;margin-left:5px}.legend-items-container::-webkit-scrollbar,.legend-preview-container::-webkit-scrollbar{width:6px}.legend-items-container::-webkit-scrollbar-track,.legend-preview-container::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.legend-items-container::-webkit-scrollbar-thumb,.legend-preview-container::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}.legend-items-container::-webkit-scrollbar-thumb:hover,.legend-preview-container::-webkit-scrollbar-thumb:hover{background:#adb5bd}.legend-editor-container .btn:focus{box-shadow:0 0 0 2px rgba(0,123,255,.25)}.legend-editor-container .btn-success:hover{background-color:#218838;border-color:#1e7e34}.legend-editor-container .btn-danger:hover{background-color:#c82333;border-color:#bd2130}.legend-editor-container .btn-primary:hover{background-color:#0069d9;border-color:#0062cc}@media(max-width:768px){.legend-editor-container .modal-lg{width:95%;margin:10px auto}.legend-item-row .col-md-1,.legend-item-row .col-md-2,.legend-item-row .col-md-3,.legend-item-row .col-md-5{margin-bottom:10px}.legend-items-container{max-height:250px}}@media(max-width:480px){.legend-editor-container .modal-lg{width:98%;margin:5px auto}.legend-editor-container .modal-body{padding:15px;max-height:60vh}.legend-items-container{padding:10px;max-height:200px}.legend-preview-container{max-height:150px;padding:10px}}