html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}



/*========================TOASTR=======================*/

.toast-title {
  font-weight: bold
}

.toast-message {
  -ms-word-wrap: break-word;
  word-wrap: break-word
}

  .toast-message a,
  .toast-message label {
      color: #fff
  }

      .toast-message a:hover {
          color: #cccccc;
          text-decoration: none
      }

.toast-close-button {
  position: relative;
  right: -0.3em;
  top: -0.3em;
  float: right;
  font-weight: bold;
  color: #fff;
  opacity: 0.8
}

  .toast-close-button:hover,
  .toast-close-button:focus {
      color: #000;
      text-decoration: none;
      cursor: pointer;
      opacity: 0.4
  }

button.toast-close-button {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none
}

.toast-top-center {
  top: 0;
  right: 0;
  width: 100%
}

.toast-bottom-center {
  bottom: 0;
  right: 0;
  width: 100%
}

.toast-top-full-width {
  top: 0;
  right: 0;
  width: 100%
}

.toast-bottom-full-width {
  bottom: 0;
  right: 0;
  width: 100%
}

.toast-top-left {
  top: 12px;
  left: 12px
}

.toast-top-right {
  top: 75px;
  right: 12px
}

.toast-bottom-right {
  right: 12px;
  bottom: 12px
}

.toast-bottom-left {
  bottom: 12px;
  left: 12px
}

#toast-container {
  position: fixed;
  z-index: 999999
}

  #toast-container * {
      -moz-box-sizing: border-box;
      -webkit-box-sizing: border-box;
      box-sizing: border-box
  }

  #toast-container > div {
      position: relative;
      overflow: hidden;
      margin: 0 0 .6rem;
      padding: .6rem .6rem .6rem 50px;
      width: 300px;
      border-radius: 10px;
      background-position: 15px center;
      background-repeat: no-repeat;
      box-shadow: 0 0.46875rem 2.1875rem rgba(4, 9, 20, 0.03), 0 0.9375rem 1.40625rem rgba(4, 9, 20, 0.03), 0 0.25rem 0.53125rem rgba(4, 9, 20, 0.05), 0 0.125rem 0.1875rem rgba(4, 9, 20, 0.03);
      opacity: 1;
  }

      #toast-container > div:hover {
          opacity: 1;
          cursor: pointer
      }

  #toast-container > .toast-info {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
      box-shadow: 0 0.66875rem 2.3875rem rgba(22, 170, 255, 0.03), 0 1.1375rem 1.60625rem rgba(22, 170, 255, 0.03), 0 0.45rem 0.73125rem rgba(22, 170, 255, 0.05), 0 0.325rem 0.3875rem rgba(22, 170, 255, 0.03)
  }

  #toast-container > .toast-error {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
      box-shadow: 0 0.66875rem 2.3875rem rgba(217, 37, 80, 0.03), 0 1.1375rem 1.60625rem rgba(217, 37, 80, 0.03), 0 0.45rem 0.73125rem rgba(217, 37, 80, 0.05), 0 0.325rem 0.3875rem rgba(217, 37, 80, 0.03)
  }

  #toast-container > .toast-success {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
      box-shadow: 0 0.66875rem 2.3875rem rgba(58, 196, 125, 0.03), 0 1.1375rem 1.60625rem rgba(58, 196, 125, 0.03), 0 0.45rem 0.73125rem rgba(58, 196, 125, 0.05), 0 0.325rem 0.3875rem rgba(58, 196, 125, 0.03);
  }

  #toast-container > .toast-warning {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
      box-shadow: 0 0.66875rem 2.3875rem rgba(247, 185, 36, 0.03), 0 1.1375rem 1.60625rem rgba(247, 185, 36, 0.03), 0 0.45rem 0.73125rem rgba(247, 185, 36, 0.05), 0 0.325rem 0.3875rem rgba(247, 185, 36, 0.03);
      color: #212529
  }

  #toast-container.toast-top-center > div,
  #toast-container.toast-bottom-center > div {
      width: 300px;
      margin-left: auto;
      margin-right: auto
  }

  #toast-container.toast-top-full-width > div,
  #toast-container.toast-bottom-full-width > div {
      width: 96%;
      margin-left: auto;
      margin-right: auto
  }

.toast {
  background-color: #343a40;
}

.toast-success {
  color: #ffffff;
  background-color: #96cc6b !important;
}

.toast-error {
  color: #ffffff;
  background-color: #d53f3f !important;
}

.toast-info {
  background-color: #16aaff
}

.toast-warning {
  background-color: #f7b924
}

.toast-progress {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 4px;
  background-color: #000;
  opacity: 0.4
}

@media all and (max-width: 240px) {
  #toast-container > div {
      padding: 8px 8px 8px 50px;
      width: 11em
  }

  #toast-container .toast-close-button {
      right: -0.2em;
      top: -0.2em
  }
}

@media all and (min-width: 241px) and (max-width: 480px) {
  #toast-container > div {
      padding: 8px 8px 8px 50px;
      width: 18em
  }

  #toast-container .toast-close-button {
      right: -0.2em;
      top: -0.2em
  }
}

@media all and (min-width: 481px) and (max-width: 768px) {
  #toast-container > div {
      padding: 15px 15px 15px 50px;
      width: 25em
  }
}

/*========================TOASTR=======================*/

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.product_detail {display: flex;align-items: flex-start;flex-direction: row;width: 100%;justify-content: space-between;}
.product_detail_left_panel {display: flex;width: 400px; min-width:400px;flex-direction: column;padding: 10px;border: 1px solid #eee;border-radius: 6px;}
.product_detail_central_panel{min-width: 660px;padding: 0 10px;}
.product_detail_right_panel{display: flex;width: 350px;min-width: 350px;max-width: 350px;flex-direction: column;padding: 10px;border: 1px solid #eee;border-radius: 6px;}

.product_detail_central_panel a {
  text-decoration: none;
}
/* Ð”Ð¾Ð±Ð°Ð²ÑŒÑ‚Ðµ Ð² Ð²Ð°Ñˆ Ñ„Ð°Ð¹Ð» ÑÑ‚Ð¸Ð»ÐµÐ¹ */
.gj-tree-drop-allow {
  background-color: #e8f4f8;
  border: 1px dashed #007bff;
}

.gj-tree-drop-over {
  background-color: #d4edff;
}

.gj-tree-drop-not-allow {
  background-color: #ffebee;
  border: 1px dashed #f44336;
}

.form-check-input {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 3em !important;
  height: 1.5em !important;
  background-color: #ddd;
  border-radius: 1.5em;
  position: relative;
  cursor: pointer;
  outline: none;
  transition: all 0.2s ease-in-out;
}

.form-check-input:checked {
  background-color: #212529;
}

.form-check-input:before {
  content: "";
  position: absolute;
  width: 1.3em;
  height: 1.3em;
  border-radius: 50%;
  top: 0.05em;
  left: 0.1em;
  background-color: white;
  transition: all 0.2s ease-in-out;
}

.form-check-input:checked:before {
  left: 1.6em;
}

.gj-tree-bootstrap .gj-tree-icon {
  cursor: pointer;
}

.gj-tree-bootstrap .gj-tree-content {
  padding: 5px;
}

.gj-tree-drop-allow {
  background-color: #e8f4f8;
  border: 1px dashed #212529;
}

.gj-tree-drag-helper {
  opacity: 0.8;
  background: #e8f4f8;
  border: 1px solid #212529;
  border-radius: 4px;
  padding: 5px;
}

.action_panel {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 5px;
}
.action_panel a {
  margin-right: 5px;
}
.action_panel .form-check {
  display: flex;
}

.btn-light {
  border: 0.5px solid #444;
}
.btn-light:hover {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #515151;
}

#three-container canvas{
  border: 0.5px solid #c7c7c7;
  border-radius:5px;
}
.component-count {
  color: #6c757d;
  margin-left: 5px;
}
.edit-count-btn {
  margin-left: 5px;
  color: #6c757d;
  opacity: 0.5;
  transition: opacity 0.3s;
}
.edit-count-btn:hover {
  opacity: 1;
  color: #0d6efd;
}
.gj-tree-text {
  display: inline-flex;
  align-items: center;
}

.add-btn {
  display: flex;
  min-width: 100%;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
}

.add-btn .card-body {
  display: flex;
  justify-content: center;
  align-items: center;
}

.add-btn i {
  font-size: 30px;
}
.ishidden {
  visibility: hidden;
}
.productCard {
  display: flex;
  flex-direction: column;
  border-radius: 8px;
  overflow: hidden;
}

.productCard img {
  display: flex;
  height: auto;
  object-fit: cover;
  width: 100%;
}


#file-manager a{
  text-decoration: none;
  color:#444;
}

.product_detail_right_panel {
  flex: 1;
  padding: 15px;
  border-left: 1px solid #ddd;
  height: 100%;
}

#file-preview-container {
  height: 100%;
  position: relative;
}

.preview-header {
  text-align: right;
  margin-bottom: 10px;
}

#file-content {
  height: calc(100% - 40px);
  overflow: auto;
}

.preview-image {
  max-width: 100%;
  max-height: 100%;
  display: block;
  margin: 0 auto;
}

#unsupported-file-message {
  text-align: center;
  padding: 20px;
}

ul.gj-list-bootstrap li [data-role=display] {
  padding: 4px 0 4px 4px;
}

.gj-tree-bootstrap-3 ul.gj-list-bootstrap li {
  font-size: 13px;
} 

#tree {
  max-height: 75vh;
  overflow-y: scroll;
}


.tree-view {
    width: 300px;
    border-right: 1px solid #ccc;
    padding-right: 20px;
}



/* =============MARKS=========== */
 .schema-container {
        position: relative;
        width: 100%;
        height: 100%;
    }
    
    .schema-wrapper {
        position: relative;
        border: 1px solid #ddd;
        overflow: auto;
        max-width: 100%;
    }
    
    #schemaCanvas {
        display: block;
        background-color: #f5f5f5;
        max-width: 100%;
        cursor: crosshair;
    }
    
    .tooltip {
        position: absolute;
        background: white;
        border: 1px solid #ccc;
        padding: 8px;
        border-radius: 4px;
        pointer-events: none;
        box-shadow: 0 2px 8px rgba(0,0,0,0.15);
        z-index: 1000;
        display: none;
        font-size: 14px;
        max-width: 250px;
    }
    
    .tooltip-content {
        padding: 5px;
    }
    
    .controls {
        margin-top: 10px;
        padding: 10px;
        background: #f8f9fa;
        border-radius: 4px;
    }
    
    /* Стиль для режима редактирования */
    .edit-mode #schemaCanvas {
        cursor: crosshair;
    }
    
    /*drawingPoints*/
.centerviewblock {
    display: block;
    margin-left: auto;
    margin-right: auto
}

canvas {
    height: auto;
}

.innerDiv {
    height: 20px;
    width: 20px;
    background: #ffffff;
    position: absolute;
    border-radius: 50px;
    box-shadow: 0 0 3px rgb(0, 124, 231);
    color: #6e6e6e;
    transition: .2s;
}

    .innerDiv.innerDiv_select {
        background: #84fa88;
        box-shadow: 0 0 3px rgb(51, 143, 5);
    }

        .innerDiv.innerDiv_select:hover {
            background: #7ce97f;
            box-shadow: 0 0 3px rgb(51, 143, 5);
        }


    .innerDiv a.remove_point {
        color: red;
        visibility: hidden;
        text-decoration: none;
        position: absolute;
        top: -20px;
        left: 2px;
        font-size: 14px;
    }

    .innerDiv:hover {
        background: #ffffff;
        position: absolute;
        cursor: pointer;
        transition: .2s;
        box-shadow: 0 0 5px #235bbcd1;
    }

        .innerDiv:hover a.remove_point {
            visibility: visible;
        }

.toolbar {
    margin-top: 30px;
}

    .toolbar a {
        /* color: #fff; */
    }

.tooltip {
  pointer-events: none;
}

.tooltip-inner {
  max-width: 300px;
  padding: 8px 12px;
  background-color: #333;
  color: #fff;
  text-align: center;
  border-radius: 4px;
  font-size: 14px;
}

.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,
.bs-tooltip-top .tooltip-arrow::before {
  border-top-color: #333;
}

.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,
.bs-tooltip-right .tooltip-arrow::before {
  border-right-color: #333;
}

.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,
.bs-tooltip-bottom .tooltip-arrow::before {
  border-bottom-color: #333;
}

.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,
.bs-tooltip-left .tooltip-arrow::before {
  border-left-color: #333;
}

/* ======MARKS===== */

.search-panel {
    padding: 8px;
    background-color: #f8f9fa;
    border-radius: 4px;
    border: 1px solid #dee2e6;
}

.search-highlight {
    background-color: #ffc107 !important;
    color: #000 !important;
}

.assembly-container {
  position: relative;
}

.fixed-left-panel {
  position: sticky;
  top: 20px;
  height: calc(100vh - 40px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.fixed-left-panel .card-body {
  flex: 1;
  overflow: hidden;
}

.assembly-tree-container {
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
}

.assembly-actions {
  display: flex;
  gap: 5px;
}

.assembly-actions .btn {
  padding: 2px 6px;
  font-size: 12px;
}

.accordion-button:not(.collapsed) .assembly-actions {
  opacity: 1;
}

.accordion-button .assembly-actions {
  opacity: 0.7;
  transition: opacity 0.2s;
}

.accordion-button:hover .assembly-actions {
  opacity: 1;
}

.tree-operation {
  cursor: pointer;
  padding: 5px;
  border-radius: 4px;
  margin: 2px 0;
}
.tree-operation:hover {
  background-color: #f8f9fa;
}
.jstree-wholerow-ul {
  position: relative;
}
.accordion-button:not(.collapsed) {
  background-color: #f8f9fa;
}
.operation-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.operation-content p {
  margin-bottom: 1rem;
}
#fullScreenModal .modal-xl {
  max-width: 95%;
}
#fullScreenModal .modal-body {
  max-height: 80vh;
  overflow-y: auto;
}

/* Адаптивность для мобильных устройств */
@media (max-width: 768px) {
  .fixed-left-panel {
      position: static;
      height: auto;
      margin-bottom: 20px;
  }
  
  .assembly-tree-container {
      height: 400px;
  }
}

/* Принудительное отображение правой панели */
.col-md-8 {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Убеждаемся, что контейнер row правильно отображается */
.assembly-container .row {
  display: flex !important;
  flex-wrap: wrap !important;
}

/* Убеждаемся, что колонки правильно отображаются */
.assembly-container .col-md-4,
.assembly-container .col-md-8 {
  flex: 0 0 auto !important;
  width: auto !important;
}

.assembly-container .col-md-4 {
  width: 33.333333% !important;
}

.assembly-container .col-md-8 {
  width: 66.666667% !important;
}

.dynamic-loader-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.7);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.dynamic_panel { position: relative; }