.number-input{width:40px}:root{--popup-left-offset: 80px}.column-left{float:left;width:0%;height:700px;overflow:hidden}.column-right{float:left;width:100%;height:90%;padding-left:5px;overflow:hidden;position:relative}.canvas-wrapper{position:relative;width:10%;height:10%}.chip-button{background:#141414d9;color:#fff;border:none;border-radius:6px;padding:6px 11px;font-size:13px;font-family:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s ease,opacity .12s ease}.chip-button:hover,.chip-button:focus-visible{background:#282828e6}.chip-button:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}.file-menu{position:absolute;top:12px;left:20px;z-index:1010;display:flex;flex-direction:column;align-items:flex-start;gap:6px;pointer-events:none}.file-menu__actions{display:flex;gap:8px;pointer-events:auto}.file-menu__toggle{pointer-events:auto}.file-menu__list{display:none;flex-direction:column;gap:4px;background:#141414eb;border-radius:10px;padding:10px;box-shadow:0 8px 20px #00000073;min-width:200px;border:1px solid rgba(255,255,255,.08);pointer-events:auto}.file-menu.open .file-menu__list{display:flex}.file-menu__item{width:100%;text-align:left;letter-spacing:.2px}.file-menu__item[disabled]{opacity:.5;cursor:default}.file-menu__item--submenu{position:relative;width:100%}.file-menu__submenu-toggle{width:100%;text-align:left}.file-menu__submenu{display:none;position:absolute;top:0;left:calc(100% + 10px);flex-direction:column;gap:6px;background:#141414f2;border-radius:10px;padding:10px;min-width:240px;box-shadow:0 8px 20px #00000073;border:1px solid rgba(255,255,255,.08);z-index:1020}.file-menu__item--submenu.open .file-menu__submenu,.file-menu__item--submenu:hover .file-menu__submenu,.file-menu__item--submenu:focus-within .file-menu__submenu{display:flex}.file-menu__submenu-item{width:100%;text-align:left}.file-menu__submenu-empty{color:#ddd;padding:6px 8px;font-size:13px;white-space:nowrap}canvas{position:absolute;top:0;left:0}#draw_area{z-index:0}#highlight_area{z-index:1;pointer-events:none}.row:after{content:"";display:table;clear:both}.modal{position:fixed;top:50%;left:var(--popup-left-offset, 12px);transform:translateY(-50%);background:#fff;padding:20px;border:2px solid #444;border-radius:8px;box-shadow:0 0 10px #999;z-index:9999;width:300px}.tabs{display:flex;overflow-x:auto;gap:10px;margin-bottom:10px}.tab{padding:10px;background:#eee;border:1px solid #ccc;cursor:pointer}.tab.active{background:#ddd;font-weight:700}.tab-content{display:none}.tab-content.active{display:block}.field{margin-bottom:10px}.field label{display:inline-block;width:200px;font-weight:700}.field input{width:300px}.button-bar{margin-top:20px}.close-btn{position:absolute;top:10px;right:10px;z-index:1001;padding:5px 10px;background:#eee;border:none;cursor:pointer}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0006;z-index:9998}.pdf-preview-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;z-index:10001;display:none;align-items:center;justify-content:flex-start;padding:20px;padding-left:var(--popup-left-offset, 12px);box-sizing:border-box}.pdf-preview-modal{background:#fff;border-radius:8px;padding:16px;width:50vw;max-width:50vw;height:50vh;max-height:50vh;display:flex;flex-direction:column;box-shadow:0 12px 30px #00000073}.pdf-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.pdf-preview-close{background:transparent;border:none;font-size:20px;cursor:pointer;line-height:1}.pdf-preview-status{margin:0 0 10px}.pdf-preview-grid{display:flex;flex-wrap:wrap;gap:10px;overflow-y:auto;padding:5px;flex:1;align-content:flex-start}.pdf-preview-page{border:1px solid #ccc;border-radius:6px;background:#fafafa;cursor:pointer;padding:8px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;transition:border-color .2s ease,box-shadow .2s ease;font:inherit;color:inherit;text-align:center;flex:1 0 20%;max-width:20%;min-width:120px;min-height:140px;background-size:contain;background-repeat:no-repeat;background-position:center 10px}.pdf-preview-page:hover{border-color:#1976d2;box-shadow:0 2px 12px #00000026}.pdf-preview-actions{display:flex;justify-content:flex-end;margin-top:10px;gap:10px}.change-pdf-scale-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0000008c;display:none;align-items:center;justify-content:flex-start;padding-left:var(--popup-left-offset, 12px);z-index:10002}.change-pdf-scale-modal{width:340px;max-width:90vw;background:#fff;border-radius:10px;padding:20px;box-shadow:0 12px 30px #00000059;display:flex;flex-direction:column;gap:10px}.change-pdf-scale-header{display:flex;justify-content:space-between;align-items:center}.change-pdf-scale-close{background:transparent;border:none;font-size:20px;cursor:pointer;line-height:1}.change-pdf-scale-label{font-size:14px;font-weight:600}.change-pdf-scale-input{width:100%;padding:6px 8px;border:1px solid #ccc;border-radius:4px;font:inherit}.change-pdf-scale-actions{display:flex;justify-content:flex-end;margin-top:6px}.change-pdf-scale-actions button{padding:6px 12px;border:none;border-radius:4px;background:#1976d2;color:#fff;cursor:pointer;font-weight:600}.change-pdf-scale-actions button:hover{background:#135ca1}.change-wall-size-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0000008c;display:none;align-items:center;justify-content:flex-start;padding-left:var(--popup-left-offset, 12px);z-index:10002}.change-wall-size-modal{width:320px;max-width:90vw;background:#fff;border-radius:10px;padding:20px;box-shadow:0 12px 30px #00000059;display:flex;flex-direction:column;gap:10px}.save-load-overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:none;align-items:flex-start;justify-content:flex-start;background:#00000073;z-index:11000;padding-left:var(--popup-left-offset, 12px);box-sizing:border-box}.save-load-modal{width:540px;max-width:96vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.save-load-header{align-items:center}.save-load-body{padding:16px;display:flex;flex-direction:column;gap:14px}.save-load-section{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:10px;border:1px solid #e5e7eb;background:#f9fbfd}.save-load-label{font-weight:600}.save-load-input{width:100%;box-sizing:border-box;padding:8px 10px;border-radius:6px;border:1px solid #ccc}.save-load-button-row{display:flex;gap:10px;flex-wrap:wrap}.save-load-button-row button{flex:1;min-width:120px}.save-load-list-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.text-button{background:transparent;border:none;color:#1d5ed8;cursor:pointer;font:inherit;padding:4px 6px}.save-load-modal select{width:100%;min-height:160px;border-radius:6px;border:1px solid #ccc;padding:4px}.change-wall-size-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.change-wall-size-close{background:transparent;border:none;font-size:20px;cursor:pointer;line-height:1}.change-wall-size-label{font-size:14px;font-weight:600}.change-wall-size-input{width:100%;padding:6px 8px;border:1px solid #ccc;border-radius:4px;font:inherit}.change-wall-size-actions{display:flex;justify-content:flex-end;margin-top:6px}.change-wall-size-actions button{padding:6px 12px;border:none;border-radius:4px;background:#1976d2;color:#fff;cursor:pointer;font-weight:600}.change-wall-size-actions button:hover{background:#135ca1}.single-wall-floating{position:fixed;bottom:12px;left:12px;right:auto;z-index:10000;font-family:sans-serif;pointer-events:auto;display:flex;align-items:flex-end;justify-content:flex-start;gap:10px}.single-wall-floating .sw-menu-zone{position:relative;display:inline-block}.single-wall-floating .sw-chip{background:#141414d9;color:#fff;padding:6px 12px;border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;display:inline-flex;align-items:center;gap:6px;box-shadow:0 3px 8px #0003}.single-wall-floating .sw-recalc{background:#323232d9}.single-wall-floating .sw-options{position:absolute;bottom:100%;right:0;display:none;flex-direction:column;align-items:stretch;gap:12px;background:#fffffffa;border:1px solid #ccc;border-radius:8px;padding:10px;box-shadow:0 8px 20px #00000040;margin-bottom:8px;max-height:70vh;overflow-y:auto}.single-wall-floating.open .sw-options{display:flex}.single-wall-floating .sw-option{width:140px;cursor:pointer;text-align:center;color:#333;font-size:13px}.single-wall-floating .sw-option:hover{color:#000}.single-wall-floating .sw-option img{width:100%;border-radius:6px;border:1px solid #ddd;box-shadow:0 4px 10px #00000026;display:block}.single-wall-floating .sw-option-label{margin-top:6px}.single-wall-popup-modal{width:520px;max-width:96vw;max-height:92vh;border:5px solid #2c3e50;box-sizing:border-box}.window-popup-modal.adjust-dimension-modal,.window-popup-modal.save-load-modal,.window-popup-modal.lintel-details-modal,.window-popup-modal.member-details-modal{border:5px solid #2c3e50;box-sizing:border-box;max-width:96vw;max-height:92vh;left:50%;transform:translate(-50%,-50%);width:auto;background:#fff}.single-wall-popup-body{display:flex;flex-direction:column;gap:16px;max-height:calc(92vh - 56px)}.single-wall-popup-body figure{margin:0;text-align:center;max-height:70vh}.single-wall-popup-body figure img{width:100%;max-height:70vh;object-fit:contain;border-radius:8px;border:1px solid #d1d5db;box-shadow:0 8px 20px #0f172a26}.single-wall-popup-body figcaption{margin-top:8px;font-weight:600;color:#1f2937}.single-wall-figure-wrapper{position:relative;width:100%;max-height:70vh}.single-wall-figure-wrapper img{display:block;width:100%;max-height:70vh;object-fit:contain}.single-wall-overlay-layer{position:absolute;inset:0;pointer-events:none;z-index:2}.single-wall-overlay-layer>*{position:absolute;pointer-events:auto;cursor:default;box-sizing:border-box}.single-wall-overlay-layer[data-editable=true]>*{cursor:move}.single-wall-overlay-layer .sw-locked{opacity:.6}.overlay-checkbox-group{position:absolute;left:10px;bottom:10px;display:inline-flex;flex-direction:column;gap:4px;z-index:3}.overlay-checkbox-title{font-size:12px;font-weight:700;color:#0f172a;background:#ffffffe6;padding:4px 8px 2px;border-radius:6px 6px 0 0;box-shadow:0 2px 6px #0f172a1a}.overlay-checkbox-row{display:inline-flex;gap:8px;background:#ffffffd9;padding:6px 8px;border-radius:0 0 6px 6px;box-shadow:0 2px 6px #0f172a2e;align-items:center;flex-wrap:wrap}.overlay-checkbox-control{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;font-size:12px;color:#0f172a}.overlay-checkbox-note{font-size:11px;color:#4b5563;margin-left:6px;white-space:nowrap}.derived-field{color:#0034b6!important;font-weight:600}.single-wall-overlay-field{display:flex;flex-direction:column;min-width:50px;background:#ffffffd1;padding:3px;border-radius:6px;box-shadow:0 2px 6px #0f172a2e;font-size:11px;color:#1f2937}.single-wall-overlay-field span{font-weight:600;text-align:center}.single-wall-overlay-field input{margin-top:3px;padding:3px 5px;border:1px solid #cfd6dc;border-radius:4px}.single-wall-overlay-width{display:flex;flex-direction:column;align-items:center;background:#ffffffd9;padding:5px 10px;border-radius:999px;box-shadow:0 4px 12px #0f172a38;font-weight:600;color:#111827;min-width:50px}.single-wall-overlay-width input{margin-top:3px;width:100%;padding:3px 8px;border:1px solid #cfd6dc;border-radius:20px;text-align:center}.single-wall-overlay-resize{position:absolute;right:4px;bottom:4px;width:12px;height:12px;border-radius:2px;background:#1f293780;cursor:se-resize;display:none}.single-wall-overlay-layer[data-editable=true] .single-wall-overlay-resize{display:block}.single-wall-popup-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:auto;padding-top:8px;position:sticky;bottom:0;background:#fff}.line{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}.horizontal{flex-direction:row}.vertical{flex-direction:column}.number-box{padding:5px 10px;background:#eee;border:1px solid #aaa;border-radius:4px}input[type=number]{width:100px}select{padding:5px}button{margin-top:10px}label{font-weight:700}body{font-family:sans-serif;margin:0;padding:10;overflow:hidden}.slider-row{display:flex;align-items:center;gap:20px}.slider-container{display:flex;flex-direction:column;align-items:center}.slider-label{margin-bottom:5px}.slider-value{margin-top:5px;font-weight:700}.popup-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:flex-start;align-items:center;padding-left:var(--popup-left-offset, 12px);z-index:9999}.popup{background:#fff;padding:20px;border-radius:10px;display:grid;grid-template-columns:auto 200px;grid-template-rows:auto auto;gap:10px;align-items:center}.popup input{width:80px;padding:5px}.popup img{width:200px;height:200px;background:#d3d3d3;border:2px solid #000}.popup-buttons{grid-column:span 2;text-align:right}.window-popup-footer-row{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:12px;position:sticky;bottom:0;padding-top:8px;background:#fff}.window-popup-footer-actions{display:inline-flex;gap:10px;align-items:center}.window-popup-modal{position:fixed;top:50%;left:var(--popup-left-offset, 12px);transform:translateY(-50%);width:600px;max-width:95vw;max-height:92vh;background:#fff;border:1px solid #2c3e50;border-radius:10px;box-shadow:0 10px 30px #00000040;z-index:10000;resize:both;overflow:auto}.window-popup-header{display:flex;align-items:center;justify-content:space-between;gap:8px;height:40px;padding:0 12px;color:#fff;background:linear-gradient(180deg,#34495e,#2c3e50);border-radius:10px 10px 0 0;cursor:move;-webkit-user-select:none;user-select:none}.window-popup-title{font-size:14px;font-weight:600;margin:0}.window-popup-close-x{appearance:none;border:none;background:transparent;color:#ecf0f1;font-size:18px;line-height:1;padding:2px 6px;border-radius:6px;cursor:pointer}.window-popup-close-x:hover{background:#ffffff1f}.window-popup-nav{display:flex;align-items:center;gap:6px}.window-popup-nav-label{font-size:12px;color:#ecf0f1;white-space:nowrap}.window-popup-nav-btn{appearance:none;border:1px solid rgba(255,255,255,.35);background:#00000026;color:#ecf0f1;border-radius:4px;width:28px;height:26px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.window-popup-nav-btn:hover{background:#ffffff2e}.window-popup-body{padding:16px}.window-popup-tabs{display:flex;gap:5px;margin-bottom:10px;flex-wrap:wrap;border-bottom:1px solid #e5e7eb}.window-popup-tab{padding:6px 10px;background:#ecf0f1;border:1px solid #cfd6dc;border-bottom:none;border-radius:6px 6px 0 0;cursor:pointer}.window-popup-tab.active{background:#fff;font-weight:600}.window-popup-tab-content{display:none;padding:10px 0}.window-popup-tab-content.active{display:block}.window-popup-field{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.window-popup-field label{flex:1;font-weight:700;color:#34495e}.window-popup-field input{flex:2;padding:8px 10px}.window-popup-close-btn,.window-popup-save-btn,.window-popup-delete-btn,.window-popup-select-btn,.window-popup-move-btn{padding:8px 12px;margin-top:10px;cursor:pointer;border-radius:4px;border:none}.window-popup-close-btn{background:#d33;color:#fff}.window-popup-save-btn{background:#3a9;color:#fff}.window-popup-delete-btn{background:#c0392b;color:#fff}.window-popup-select-btn{background:#2980b9;color:#fff}.overlay{position:fixed;inset:0;background:#00000073;z-index:9998}.window-popup-body input[type=text],.window-popup-body input[type=number],.window-popup-body select{display:inline-block;padding:8px 10px;border:1px solid #cfd6dc;border-radius:8px;background:#f9fbfd;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;box-shadow:inset 0 1px 2px #1018280a;color:#111827}.window-popup-body input[type=text]:focus,.window-popup-body input[type=number]:focus,.window-popup-body select:focus{border-color:#4aa3df;box-shadow:0 0 0 3px #4aa3df40,inset 0 1px 2px #1018280a;background:#fff}.window-popup-body button{appearance:none;border:1px solid #cfd6dc;background:linear-gradient(#fff,#f2f4f7);color:#1f2937;padding:8px 12px;border-radius:8px;font-weight:600;transition:transform .04s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease;box-shadow:0 1px 2px #10182814}.window-popup-body button:hover{background:#fff;box-shadow:0 2px 6px #1018281f}.window-popup-body button:active{transform:translateY(1px)}.more-options-overlay{z-index:10002}@media(max-width:640px){.window-popup-modal.single-wall-popup-modal{inset:10px 5px auto;width:auto;max-width:none;height:auto;max-height:calc(100vh - 20px);transform:none;box-sizing:border-box}.single-wall-popup-body{max-height:none}.window-popup-modal.adjust-dimension-modal,.window-popup-modal.save-load-modal{inset:10px 5px auto;width:auto;max-width:none;height:auto!important;max-height:calc(100vh - 20px);transform:none;box-sizing:border-box}.window-popup-modal.adjust-dimension-modal .window-popup-body{max-height:calc(100vh - 140px);overflow-y:auto}.window-popup-modal.lintel-details-modal,.window-popup-modal.member-details-modal{inset:10px 5px auto;width:auto;max-width:none;height:auto!important;max-height:calc(100vh - 20px);transform:none;box-sizing:border-box}.window-popup-modal.lintel-details-modal .window-popup-body,.window-popup-modal.member-details-modal .window-popup-body{max-height:calc(100vh - 140px);overflow-y:auto}}.more-options-modal{z-index:10003;top:50%;left:50%;transform:translate(-50%,-50%);width:420px;max-height:70vh}.more-options-modal .window-popup-body{max-height:60vh;overflow:auto}.window-popup-modal.log-popup-modal{max-width:900px;width:90vw;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.window-popup-body.log-popup-body{flex:1;display:flex;flex-direction:column;overflow:hidden}.log-popup-layout{flex:1;display:flex;gap:16px;overflow:hidden}.log-popup-timeline{width:50%;max-width:50%;overflow-y:auto;border-right:1px solid #e5e7eb;padding-right:12px}.log-popup-timeline-list{display:flex;flex-direction:column;gap:16px}.log-popup-timeline-row{display:flex;flex-direction:column;gap:6px}.log-popup-timeline-label{font-weight:600;color:#34495e}.log-popup-timeline-chips{display:flex;flex-wrap:wrap;gap:8px}.log-popup-chip{display:inline-flex;align-items:center;border:1px solid #cfd6dc;background:#ecf0f1;border-radius:999px;padding:6px 12px;cursor:pointer;font-size:12px;transition:background .2s ease}.log-popup-chip.active{background:#2c3e50;color:#fff;border-color:#2c3e50}.log-popup-status-chip{cursor:default}.log-popup-status-chip.success{background:#16a34a;border-color:#16a34a;color:#fff}.log-popup-status-chip.info{background:#2563eb;border-color:#2563eb;color:#fff}.log-popup-details{flex:1;display:flex;flex-direction:column;overflow:hidden}.log-popup-details-title{font-weight:600;margin-bottom:8px;color:#2c3e50}.log-popup-fields{flex:1;display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding-right:8px}.log-popup-footer{position:sticky;bottom:0;display:flex;align-items:center;gap:12px;padding-top:12px;margin-top:16px;border-top:1px solid #e5e7eb;background:#fff}.log-popup-footer button{margin-top:0}.log-popup-move-inline{display:flex;align-items:center;gap:8px;margin-left:auto}.log-popup-move-label{font-size:12px;color:#475467}.log-popup-move-input{width:70px;padding:6px}.log-popup-empty{color:#6b7280;font-style:italic}.window-popup-save-btn{background:#16a34a;border-color:#12893e;color:#fff}.window-popup-save-btn:hover{background:#19b651;box-shadow:0 3px 8px #16a34a4d}.window-popup-close-btn{background:#e11d48;border-color:#be123c;color:#fff}.window-popup-close-btn:hover{background:#f43f5e;box-shadow:0 3px 8px #e11d484d}.window-popup-delete-btn{background:#c0392b;border-color:#a83225;color:#fff}.window-popup-delete-btn:hover{background:#d14638;box-shadow:0 3px 8px #c0392b4d}.window-popup-select-btn{background:#2563eb;border-color:#1e4fd9;color:#fff}.window-popup-select-btn:hover{background:#3b82f6;box-shadow:0 3px 8px #2563eb4d}.custom-dropdown{border:1px solid #ccc;display:inline-block;position:relative;width:200px;cursor:pointer;background:#fff}.custom-dropdown .selected{padding:8px}.custom-dropdown ul{list-style:none;margin:0;padding:0;position:absolute;top:100%;left:0;width:100%;border:1px solid #ccc;background:#fff;display:none;z-index:10}.custom-dropdown ul li{padding:8px}.custom-dropdown ul li:hover{background:#eee}.custom-dropdown.open ul{display:block}.custom-dropdown ul li{position:relative}.custom-dropdown ul li ul.submenu{display:none;position:absolute;top:0;left:100%;min-width:180px;border:1px solid #ccc;background:#fff;z-index:20}.custom-dropdown ul li.submenu-open>ul.submenu{display:block}.custom-dropdown ul li ul.submenu li:hover{background:#eee}.custom-dropdown ul li ul.submenu ul.submenu{top:0;left:100%}
