*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{width:100vw;height:100vh;overflow:hidden;background:#eef0f4;font-family:Segoe UI,system-ui,sans-serif;color:#1e293b;font-size:14px}body{display:grid;grid-template-columns:42% 1fr;grid-template-rows:40px 1fr;grid-template-areas:"title title" "left  view"}#titlebar{grid-area:title;background:#b2b0b0;border-bottom:1px solid #9e9c9c;display:flex;align-items:center;gap:12px;padding:0 16px;user-select:none}.logo{font-size:16px;font-weight:700;color:#1e293b;letter-spacing:.05em;display:flex;align-items:center;gap:8px}.logo-img{height:26px;width:auto;display:block;flex-shrink:0}.logo-link{color:inherit;text-decoration:none}.logo-link:hover{color:#312e81;text-decoration:underline}.version{font-size:10px;color:#8a8888;margin-left:auto}#left-panel{grid-area:left;background:#f0f2f5;border-right:2px solid #c8ccd4;overflow-y:auto;padding:20px 20px 32px;display:flex;flex-direction:column;gap:14px;position:relative}#ph-computing{position:absolute;inset:0;background:#f0f2f5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:50}#ph-computing.hidden{display:none}.spinner{width:48px;height:48px;border:4px solid #c8ccd4;border-top-color:#4f46e5;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-label{font-size:13px;color:#6b7280;font-weight:500}#viewer{grid-area:view;position:relative;background:#c9c9c9}#ph-open{display:flex;flex-direction:column;gap:16px;padding-top:20px}.subtitle{font-size:13px;color:#5e5e5e;line-height:1.5}.model-item{display:flex;align-items:center;gap:8px;background:#e4e8ee;border:1px solid #c8ccd4;border-radius:6px;padding:6px 10px;font-size:13px}.tag.ok{flex:1;color:#166534;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-remove{border:1px solid #c8ccd4;background:#fff;color:#64748b;border-radius:4px;padding:2px 8px;font-size:12px;cursor:pointer;white-space:nowrap;flex-shrink:0}.btn-remove:hover{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.form-section{display:flex;flex-direction:column;gap:5px}.form-label{font-size:13px;font-weight:600;color:#374151}.form-select{width:100%;padding:7px 10px;border:1px solid #c8ccd4;border-radius:6px;background:#fff;font-size:13px;color:#1e293b;cursor:pointer}.form-select:focus{outline:2px solid #4f46e5;border-color:#4f46e5}.form-select:disabled{background:#e8eaf0;color:#94a3b8;cursor:default}.error-msg{font-size:12px;color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5;border-radius:4px;padding:5px 9px;margin-top:4px}#space-list{display:flex;flex-direction:column;gap:1px;max-height:220px;overflow-y:auto}.space-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:4px;cursor:pointer;transition:background .1s}.space-row:hover{background:#e4e8ee}.space-row.active{background:#e0e7ff}.space-label{font-size:13px}.section-title{font-size:13px;font-weight:700;color:#1e293b;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}.setback-list-header{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;padding:4px 6px;border-bottom:1px solid #d1d5db;margin-bottom:2px}.edge-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8px;padding:5px 6px;border-radius:4px;cursor:pointer;border:1px solid transparent;transition:background .1s}.edge-row:hover{background:#e4e8ee}.edge-row.active{background:#e0e7ff;border-color:#818cf8}.edge-label{flex:0 0 auto;font-size:13px;font-weight:500;white-space:nowrap}.edge-type-sel{flex:1;padding:4px 6px;border:1px solid #c8ccd4;border-radius:4px;background:#fff;font-size:12px;color:#1e293b;cursor:pointer}#ph-config{display:flex;flex-direction:column;gap:24px}.advance-area{display:flex;flex-direction:column}.btn.large{padding:10px 20px;font-size:14px;font-weight:600}.btn{padding:6px 12px;border:1px solid #c8ccd4;border-radius:6px;background:#fff;color:#1e293b;font-size:13px;cursor:pointer;transition:background .1s,color .1s}.btn:hover{background:#e8eaf0}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:#4f46e5;color:#fff;border-color:#4338ca;font-weight:600}.btn.primary:hover:not(:disabled){background:#4338ca}#ph-results{display:flex;flex-direction:column;gap:12px}#results-header{margin-top:4px}.res-title-zona{font-size:13px;font-weight:700;color:#1e293b}.res-title-uso{font-size:13px;color:#4338ca;font-weight:600;margin-top:2px}.param-list{display:flex;flex-direction:column;gap:0;border:1px solid #d1d5db;border-radius:8px;overflow:hidden;background:#fff}.param-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid #f0f2f5;font-size:13px;line-height:1.4}.param-row:last-child{border-bottom:none}.param-row.edge-result-row{cursor:pointer}.param-row.edge-result-row:hover{background:#e4e8ee}.param-row.edge-result-row.active{background:#e0e7ff}.param-name{color:#374151;font-weight:500}.param-rule{color:#6b7280;font-size:12px}.param-val{font-weight:700;white-space:nowrap;text-align:right}.param-val.no-data{color:#9ca3af;font-weight:400;font-style:italic}.setback-results-section{margin-top:8px}.results-list{display:flex;flex-direction:column;gap:0}.result-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid #f0f2f5;border-radius:4px;font-size:13px;gap:8px;cursor:pointer;transition:background .1s}.result-row:hover{background:#f0f2f5}.result-row.active{background:#e0e7ff}.result-name{color:#374151;flex:1}.result-area{font-weight:700;white-space:nowrap}.result-area.ok{color:#166534}.result-area.fail{color:#b91c1c}.edge-result-row{cursor:pointer}.ok-text{color:#16a34a}.fail-text{color:#b91c1c}.warn-text{color:#92400e}.hint{color:#6b7280;font-size:12px}.no-data{color:#9ca3af}#loading{position:absolute;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;gap:10px;color:#fff;font-size:15px;font-weight:500;z-index:100}#loading.hidden{display:none}.hidden{display:none!important}.disclaimer{font-size:11px;color:#92400e;line-height:1.5}.ifc-accordion{border:1px solid #d1d5db;border-radius:6px;overflow:hidden}.ifc-accordion-title{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:13px;font-weight:600;color:#374151;cursor:pointer;background:#f0f2f5;user-select:none}.ifc-accordion-title::-webkit-details-marker{display:none}.ifc-accordion-title:after{content:"▸";font-size:11px;color:#6b7280}.ifc-accordion[open] .ifc-accordion-title:after{content:"▾"}.ifc-accordion-title:hover{background:#e4e8ee}.ifc-accordion-body{display:flex;flex-direction:column;gap:8px;padding:8px}.ifc-notes{background:#f8f9fa;border:1px solid #d1d5db;border-radius:6px;padding:10px 12px;font-size:12px;color:#4b5563;line-height:1.6}.ifc-notes-title{font-weight:600;color:#374151;margin-bottom:6px}.ifc-notes p{margin:0 0 4px}.ifc-notes ul{margin:2px 0 0;padding-left:16px}.ifc-notes li{margin-bottom:1px}.ifc-notes a{color:#4f46e5}.ifc-notes a:hover{text-decoration:underline}.bimfacil-link{display:block;margin-top:28px;text-align:center}.bimfacil-logo{width:75px;height:auto;display:inline-block}.viewer-watermark{position:absolute;bottom:12px;right:12px;z-index:10;opacity:.75;transition:opacity .2s}.viewer-watermark:hover{opacity:1}.viewer-watermark img{width:60px;height:auto;display:block}.space-selector{background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:10px 12px;margin-bottom:12px}.space-check-list{display:flex;flex-direction:column;gap:2px;max-height:200px;overflow-y:auto;margin-top:6px}.storey-group-header{display:flex;align-items:center;gap:8px;padding:6px 4px 4px;font-size:13px;font-weight:600;color:#1e293b;border-top:1px solid #e5e7eb;margin-top:4px;cursor:pointer}.storey-group-header:first-child{border-top:none;margin-top:0}.storey-group-header input[type=checkbox]{accent-color:#4f46e5;width:14px;height:14px;cursor:pointer;flex-shrink:0}.space-row{display:flex;align-items:center;gap:8px;padding:3px 4px;border-radius:4px;cursor:pointer;font-size:13px}.space-row-indented{padding-left:26px}.space-row:hover{background:#f0f2f5}.space-row input[type=checkbox]{accent-color:#4f46e5;width:14px;height:14px;cursor:pointer;flex-shrink:0}.warn-box{font-size:12px;color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;padding:8px 12px;margin-bottom:8px;line-height:1.5}
