:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64);--primary: #117e70}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}@media (prefers-color-scheme: dark){:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2)}}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{margin:0 auto;padding:2rem;font-weight:400}a,.green{text-decoration:none;color:#00bd7e;transition:.4s;padding:3px}@media (hover: hover){a:hover{background-color:#00bd7e33}}@media (min-width: 1024px){body{display:flex;place-items:center}#app{display:grid;grid-template-columns:1fr 1fr;padding:0 2rem}}.scene-wrapper[data-v-30cae9ba]{position:relative;width:100%;height:100vh}.mode-buttons[data-v-30cae9ba]{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:10px;z-index:100;max-height:calc(100vh - 20px);overflow-y:visible;width:200px;height:100%;transition:gap .3s ease}.slide-enter-active[data-v-30cae9ba]{transition:all .35s cubic-bezier(.4,0,.2,1)}.slide-leave-active[data-v-30cae9ba]{transition:all .3s cubic-bezier(.4,0,1,1)}.slide-enter-from[data-v-30cae9ba]{opacity:0;transform:translateY(-20px);margin-top:-20px}.slide-enter-to[data-v-30cae9ba],.slide-leave-from[data-v-30cae9ba]{opacity:1;transform:translateY(0);margin-top:-8px}.slide-leave-to[data-v-30cae9ba]{opacity:0;transform:translateY(-20px);margin-top:-20px}.visualization-controls[data-v-30cae9ba],.joint-highlight-controls[data-v-30cae9ba],.camera-labels-controls[data-v-30cae9ba],.opacity-control[data-v-30cae9ba]{background:#fff;padding:12px;border-radius:8px;border:1px solid #ddd;box-shadow:0 2px 8px #0000001a;width:100%;box-sizing:border-box}.opacity-control[data-v-30cae9ba]{background:linear-gradient(114deg,#f8f9fa,#80aedc);position:relative;margin-top:-8px;border-radius:0 0 8px 8px;border:1px solid #ddd;border-top:none;box-shadow:0 4px 8px #0000001a;display:flex;flex-direction:column;justify-content:center}.opacity-control[data-v-30cae9ba]:before{content:"Настройка прозрачности";display:block;font-size:11px;font-weight:600;color:var(--vt-c-indigo);margin-bottom:8px;text-align:center;background:#2196f31a;padding:4px;border-radius:4px}.opacity-control label[data-v-30cae9ba]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;color:#333;font-weight:500}.opacity-control input[data-v-30cae9ba]{width:100%;height:6px;border-radius:3px;background:#e0e0e0;outline:none;-webkit-appearance:none}.opacity-control input[data-v-30cae9ba]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--primary);cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #0003}.opacity-control input[data-v-30cae9ba]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#2196f3;cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #0003}.visualization-controls[data-v-30cae9ba]{position:relative;z-index:2;border-radius:8px 8px 0 0;margin-bottom:0;display:flex;flex-direction:column;gap:4px}.visualization-controls.has-opacity[data-v-30cae9ba]{border-radius:8px 8px 0 0;box-shadow:0 2px 4px #0000001a}.mode-buttons.with-opacity .joint-highlight-controls[data-v-30cae9ba],.mode-buttons.with-opacity .camera-labels-controls[data-v-30cae9ba]{transition:transform .35s cubic-bezier(.4,0,.2,1);transform:translateY(8px)}.joint-mode-buttons[data-v-30cae9ba],.camera-labels-controls[data-v-30cae9ba]{display:flex;flex-direction:column;gap:4px}.joint-highlight-controls h4[data-v-30cae9ba]{margin:0 0 8px;font-size:12px;color:var(--vt-c-indigo);text-align:center}.mode-btn[data-v-30cae9ba]{padding:8px 12px;border:1px solid #ccc;background:#fff;border-radius:6px;cursor:pointer;font-size:12px;color:#333;transition:all .2s ease;width:100%;text-align:left}.mode-btn[data-v-30cae9ba]:hover{border-color:var(--primary);background:#f8f9fa;transform:translateY(-1px)}.mode-btn.active[data-v-30cae9ba]{border-color:var(--primary);background:var(--primary);color:#fff;font-weight:500}.joint-mode-btn[data-v-30cae9ba]{padding:6px 10px;border:1px solid #ccc;background:#fff;border-radius:4px;cursor:pointer;font-size:11px;color:#333;transition:all .2s ease;text-align:left}.joint-mode-btn[data-v-30cae9ba]:hover{border-color:var(--primary);background:#f8f9fa}.joint-mode-btn.active[data-v-30cae9ba]{border-color:var(--primary);background:var(--primary);color:#fff;font-weight:500}.control-btn[data-v-30cae9ba]{padding:8px 12px;border:1px solid #ccc;background:#fff;border-radius:6px;cursor:pointer;font-size:12px;color:#333;transition:all .2s ease;text-align:left;width:100%}.control-btn.reset[data-v-30cae9ba]{background-color:#711c1c;color:#fff;font-weight:500}.control-btn.reset[data-v-30cae9ba]:hover{background:#952828;color:#fff}.control-btn[data-v-30cae9ba]:hover:not(.reset){border-color:var(--primary);background:#f8f9fa;transform:translateY(-1px);color:#333}.control-btn.active[data-v-30cae9ba]{border-color:var(--primary);background:var(--primary);color:#fff;font-weight:500}.camera-info[data-v-30cae9ba]{position:absolute;bottom:10px;right:10px;background:#fffffff2;padding:10px 12px;border-radius:6px;font-family:Courier New,monospace;font-size:12px;color:#333;border:1px solid #ddd;box-shadow:0 2px 6px #0000001a;z-index:100;min-width:150px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);margin-bottom:220px}.camera-info-title[data-v-30cae9ba]{font-weight:700;margin-bottom:4px;font-size:11px;color:#666;border-bottom:1px solid #eee;padding-bottom:2px}.camera-info div[data-v-30cae9ba]{margin:1px 0;line-height:1.2}.scene-container[data-v-30cae9ba]{width:100%;height:100vh;background:#f0f0f0;cursor:pointer}.room-labels[data-v-30cae9ba]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:50}.room-label[data-v-30cae9ba],.wall-label[data-v-30cae9ba]{position:absolute;padding:6px 10px;border-radius:4px;font-size:12px;font-weight:700;color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.8);background:#3c3c3cb3;border:2px solid rgba(255,255,255,.4);transform:translate(-50%,-50%);white-space:nowrap;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);box-shadow:0 2px 4px #0003;transition:opacity .3s ease}.room-label[data-v-30cae9ba]{font-size:13px;background:#464646bf;padding:8px 12px}.left-room[data-v-30cae9ba]{border-color:#4a90e2}.right-room[data-v-30cae9ba]{border-color:#ff6b6b}.wall-label[data-v-30cae9ba]{border-color:#50c878;font-size:11px;background:#3c3c3ca6}.control-group[data-v-cb6d07b2]{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #ddd}.control-group h4[data-v-cb6d07b2]{margin:0 0 4px;font-size:11px;color:#333;background:#f5f5f5;padding:2px 5px;border-radius:3px}.info-text[data-v-cb6d07b2]{font-size:9px;color:#666;font-style:italic;margin-top:3px}.slider-control[data-v-7ed333c0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px;font-size:10px}.slider-control input[type=range][data-v-7ed333c0]{width:120px}.slider-control .value[data-v-7ed333c0]{font-size:9px;color:#666;min-width:45px;text-align:right}.label[data-v-7ed333c0]{flex:1}.select-control[data-v-de69c170]{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px;font-size:10px;gap:6px}.select-control select[data-v-de69c170]{width:170px;font-size:10px;padding:2px}.label[data-v-de69c170]{flex:1}.gasket-fit[data-v-76b7ed17]{font-size:10px;line-height:1.4;border-radius:4px;padding:5px 7px;margin:4px 0 6px;display:flex;flex-direction:column;gap:3px}.gasket-fit.compact[data-v-76b7ed17]{padding:3px 6px;margin:1px 0 5px}.status-ok[data-v-76b7ed17]{background:#eef7ee;color:#2e6b2e}.status-gap[data-v-76b7ed17],.status-overlap[data-v-76b7ed17],.status-no-contact[data-v-76b7ed17]{background:#fff3e0;border:1px solid #ffb74d;color:#8a4b00}.status-unplaced[data-v-76b7ed17]{background:#f4f4f4;color:#777}.muted[data-v-76b7ed17]{opacity:.8}.fill-btn[data-v-76b7ed17]{align-self:flex-start;margin-top:2px;padding:4px 9px;font-size:10px;border:1px solid #ff8c00;background:#fff;color:#b35f00;border-radius:4px;cursor:pointer;transition:all .15s ease}.fill-btn[data-v-76b7ed17]:hover{background:#ff8c00;color:#fff}.controls-panel[data-v-93855b87]{position:absolute;top:10px;left:10px;background:#fff;padding:12px;border-radius:8px;font-family:Arial,sans-serif;max-width:380px;max-height:90vh;overflow-y:auto;border:1px solid #ddd;box-shadow:0 2px 8px #0000001a}.room-count-switch[data-v-93855b87]{display:flex;gap:6px}.room-count-btn[data-v-93855b87]{flex:1;padding:8px;border:1px solid #ccc;background:#fff;border-radius:6px;cursor:pointer;font-size:13px;transition:all .2s ease}.room-count-btn[data-v-93855b87]:hover{background:#f5f5f5}.room-count-btn.active[data-v-93855b87]{background:#117e70;border-color:#117e70;color:#fff;font-weight:500}.subheading[data-v-93855b87]{font-size:10px;font-weight:600;color:#444;margin:6px 0 2px}.material-readout[data-v-93855b87]{font-size:9px;color:#555;background:#f7f7f7;border-radius:3px;padding:4px 6px;margin:3px 0 6px;line-height:1.4}.material-readout.muted[data-v-93855b87]{color:#888;font-style:italic}.validation-box[data-v-93855b87]{margin-top:10px;padding:8px;border:1px solid #f5c2c7;background:#fdf2f3;border-radius:6px;font-size:10px;color:#842029}.validation-box ul[data-v-93855b87]{margin:4px 0 0;padding-left:16px}.export-btn[data-v-93855b87]{margin-top:10px;width:100%;font-size:13px;padding:10px;border:1px solid #4caf50;background:#fff;border-radius:6px;cursor:pointer;color:#4caf50;transition:all .2s ease;font-weight:500}.export-btn[data-v-93855b87]:hover:not(:disabled){background:#4caf50;color:#fff;transform:translateY(-1px)}.export-btn[data-v-93855b87]:disabled{opacity:.45;cursor:not-allowed}.export-btn.secondary[data-v-93855b87]{border-color:#666;color:#666;font-size:12px;padding:7px}.export-btn.secondary[data-v-93855b87]:hover:not(:disabled){background:#666}.clear-joint-btn[data-v-93855b87]{width:100%;padding:8px;margin-top:10px;border:1px solid #f44336;background:#fff;border-radius:6px;cursor:pointer;font-size:13px;color:#f44336;transition:all .2s ease}.clear-joint-btn[data-v-93855b87]:hover{background:#f44336;color:#fff;transform:translateY(-1px)}.joint-info[data-v-93855b87]{padding:10px;background:#f9f9f9;border-radius:6px;margin-bottom:10px;border:1px solid #eee}.joint-description[data-v-93855b87]{font-size:12px;color:#666;margin-bottom:10px;line-height:1.4}.instruction[data-v-93855b87]{font-size:12px;color:#666;line-height:1.4}.instruction p[data-v-93855b87]{margin:5px 0}.active-selection[data-v-93855b87]{color:#2196f3;font-weight:500;background:#e3f2fd;padding:6px 10px;border-radius:4px;margin-top:10px;border:1px solid #bbdefb}.clear-btn[data-v-93855b87]{width:100%;padding:8px;margin-top:10px;border:1px solid #666;background:#fff;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s ease}.clear-btn[data-v-93855b87]:hover{background:#f5f5f5;transform:translateY(-1px)}.room-builder[data-v-1e49a303]{position:relative;width:100%;height:100vh}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}#app{display:flex;flex-direction:column;height:100vh;width:100%}header{background:#117e70;color:#fff;padding:1rem;text-align:center}.main-content{display:flex;flex:1;min-width:1500px}.scene-section{flex:3}.properties-section{flex:1;min-width:300px}
