@font-face{font-family:Lab;src:local('Inter'),local('Helvetica Neue')}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{font-family:Lab,Arial,sans-serif;color:#263c3a;background:#f7f8f6;font-size:13px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer;border:1px solid #d6dfdb;background:#fff;color:#344d48;border-radius:6px;padding:9px 12px;transition:background .15s}button:hover{background:#edf3ef}button:disabled{opacity:.55;cursor:wait}a{color:#236c5b}header{height:76px;background:#fff;display:flex;align-items:center;gap:28px;padding:0 26px;border-bottom:1px solid #dce3de}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#1d4b3f;min-width:280px;font-size:16px;letter-spacing:1.2px}.brand small{display:block;font-size:8px;letter-spacing:1.6px;margin-top:6px}.brandmark{font-family:Georgia,serif;font-size:30px;background:#1e5b48;color:#fff;width:40px;height:40px;padding:3px 9px;border-radius:10px;letter-spacing:-5px}.brandmark span{font-style:italic}.project-title{flex:1;font-size:14px}.project-title>span:first-child{padding:0 12px;color:#a4b5ad}.pill{font-size:9px;border-radius:4px;background:#f2efe3;color:#7b6834;padding:5px 7px;letter-spacing:.8px;margin-left:16px}.primary{background:#1e5b48;color:white;border-color:#1e5b48}.primary:hover{background:#174a39}.toolbar{height:49px;display:flex;align-items:center;gap:22px;padding:0 26px;background:white;border-bottom:1px solid #dce3de}.tabs{align-self:stretch;display:flex;gap:28px;flex:1}.tabs button{border:0;border-radius:0;background:transparent;padding:0 1px;color:#71817a;font-size:12px}.tabs .active{border-bottom:2px solid #1c634b;color:#1c634b;font-weight:700}#save-state{font-size:11px;color:#74847d}.toolbar>button{font-size:11px;padding:6px 12px}main{height:calc(100% - 157px);display:grid;grid-template-columns:224px minmax(280px,1fr) 330px}.registry,.inspector{overflow:auto;background:#fff}.registry{border-right:1px solid #dce3de;padding:22px 16px}.inspector{border-left:1px solid #dce3de;padding:23px 23px 35px}.section-heading{font-size:10px;letter-spacing:1.1px;font-weight:700;color:#536d62;display:flex;align-items:center;justify-content:space-between}.section-heading span{font-size:9px;color:#82978a}.section-heading button{padding:0 5px;border:0}.registry input{width:100%;margin:17px 0 23px;padding:9px 10px;border:1px solid #dce3de;border-radius:5px;background:#fafbf9;font-size:11px}.layer-title{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#71857a;margin-bottom:10px}.layer-title small{font-size:9px;letter-spacing:0}.layer-row{display:flex;gap:7px;align-items:center;padding:8px 0;font-size:11px}.layer-row input{width:auto;margin:0;accent-color:#276a51}.layer-dot{width:7px;height:7px;border-radius:2px}.layer-row small{margin-left:auto;color:#8da094}.registry-head{margin-top:25px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;font-size:11px}.registry-head button{padding:4px 6px;border:0;color:#1e6b4e;font-size:10px}.object-row{border:0;border-radius:4px;display:flex;width:100%;padding:8px 9px;align-items:center;background:transparent;font-size:11px;gap:7px}.object-row.selected{background:#e9f2eb;color:#17573c}.object-row .id{font-variant-numeric:tabular-nums}.object-row small{color:#8d9f93;font-size:9px;margin-left:auto}.object-icon{color:#789180;font-size:12px}.registry-note{font-size:10px;line-height:1.6;color:#8b998e;margin-top:22px;border-top:1px solid #e2e7e1;padding-top:16px}.viewport{position:relative;overflow:hidden;background:#f4f6f2;display:flex;flex-direction:column}.view-heading{position:absolute;top:26px;left:28px;right:28px;display:flex;justify-content:space-between;align-items:center;z-index:1;pointer-events:none}.view-heading small{font-size:9px;letter-spacing:1.5px;color:#798d7e}h1{font-size:18px;letter-spacing:-.4px;font-weight:500;margin:7px 0}.dimension-chip{background:#fff9;border:1px solid #d9e1d6;font-size:10px;border-radius:5px;padding:8px;white-space:nowrap}#canvas-container{position:relative;flex:1;min-height:150px}canvas{display:block;touch-action:none}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}.model-label{position:absolute;color:#426b58;background:#ffffffdc;border:1px solid #d5e0d5;padding:3px 5px;border-radius:3px;font-size:10px;white-space:nowrap;transform:translate(-50%,-50%)}.model-label.dim{border:0;background:#f4f6f2c9;color:#789080;font-size:11px}.view-controls{position:absolute;bottom:93px;left:50%;transform:translateX(-50%);display:flex;background:#fff;border:1px solid #d7dfd4;border-radius:7px;box-shadow:0 4px 16px #2d4b3710;padding:3px;white-space:nowrap}.view-controls button{font-size:10px;padding:9px 12px;border:0;background:transparent}.view-controls .active{background:#e8f0e6;color:#205c3f}.canvas-note{height:38px;display:flex;gap:7px;align-items:center;padding:0 20px;font-size:9px;color:#7e907f}.mouse-help{margin-left:auto}.warning-strip{min-height:43px;display:flex;gap:12px;align-items:center;padding:9px 20px;background:#eeeede;border-top:1px solid #e3e2cf;color:#7c7755;font-size:10px;line-height:1.4}.warning-strip b{font-size:8px;letter-spacing:.8px;white-space:nowrap}.status-dot{display:inline-block;width:5px;height:5px;background:#599675;border-radius:50%;margin-right:5px}.panel{display:none}.panel.active{display:block}.panel p{line-height:1.65;font-size:11px}.muted{font-size:10px!important;color:#7c8b7f;line-height:1.65}.dimension-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:19px 0 16px}.dimension-inputs label{position:relative;font-size:10px;color:#718578}.dimension-inputs input{width:100%;margin-top:8px;padding:10px 18px 10px 9px;border:1px solid #d7dfd4;border-radius:5px;color:#284d38;font-size:13px}.dimension-inputs span{position:absolute;right:8px;bottom:11px;color:#8f9c8e;font-size:9px}.field{display:block;font-size:10px;color:#6b7f70;margin-bottom:14px}.field input,.field select{display:block;width:100%;margin-top:7px;padding:9px;border:1px solid #d7dfd4;border-radius:5px;background:#fff;color:#314d3b}.wide{width:100%;font-size:11px;margin:5px 0;padding:10px}.subtle{border:0;background:transparent;color:#6b8271}.divider{height:1px;background:#e2e6de;margin:24px 0}.empty{font-size:11px;color:#8b9b8c;line-height:1.7;padding:24px 6px 3px}.position-inputs{display:flex;gap:9px;margin:14px 0}.position-inputs label{font-size:10px;color:#718578;flex:1;min-width:0}.position-inputs input{width:100%;border:1px solid #d7dfd4;border-radius:4px;margin-top:5px;padding:8px 5px}#selection-id{margin-top:17px;font-size:15px;font-weight:600;color:#255b3c}.check-item{font-size:10px;padding:7px 0;line-height:1.6;color:#7c7550}.check-item.error{color:#aa4a3b}.check-item.ok{color:#3c805e}.notice{padding:13px;border-left:2px solid #c4bc86;background:#f8f7ef;color:#7f785b;font-size:11px}pre{white-space:pre-wrap;font-size:10px;line-height:1.6;color:#48624f;max-height:240px;overflow:auto}code{font-size:10px}.file-link{display:block;text-decoration:none;padding:12px 0;border-bottom:1px solid #e1e7db;font-size:11px}.file-link:hover{text-decoration:underline}.file-drop{display:block;text-align:center;border:1px dashed #bacbb8;padding:14px 8px;border-radius:5px;font-size:11px;color:#4c7755;cursor:pointer;margin:12px 0;background:#f8fbf5}.file-drop input{display:block;width:100%;font-size:9px;margin-top:10px}.record{padding:9px 0;border-bottom:1px solid #e3e8de;font-size:10px;line-height:1.5}footer{height:32px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-top:1px solid #dce3de;font-size:9px;color:#8b9a8c;padding:0 20px;gap:16px}footer>span:first-child{font-size:8px;letter-spacing:.6px}#status{max-width:60%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#5f7d65}#object-count{margin-left:12px;letter-spacing:0}dialog{border:1px solid #d4ded0;border-radius:10px;width:min(760px,90vw);padding:24px;color:#2e4f37;box-shadow:0 20px 80px #1c372b36}dialog::backdrop{background:#18362766}.dialog-heading{display:flex;align-items:center;justify-content:space-between}.dialog-heading h2{font-size:18px;font-weight:500;margin:0}.dialog-heading button{border:0;font-size:22px;padding:0 7px}#json-editor{width:100%;height:48vh;margin-top:16px;border:1px solid #ccd9c7;border-radius:5px;font-family:monospace;font-size:12px;padding:14px;resize:vertical;background:#f8faf6;line-height:1.5}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:15px}#json-error{font-size:11px;color:#a64031;white-space:pre-wrap;max-height:100px;overflow:auto}#object-kind-label{display:block;font-size:11px;margin-top:8px}#object-kind-label[hidden]{display:none}#object-kind{margin-left:12px;padding:6px;border:1px solid #cbd8c7;border-radius:5px}#canvas-failure{position:absolute;top:45%;left:10%;right:10%;padding:24px;background:#fff;color:#8c4d3e;line-height:1.6}.simulated{color:#9f6b38}#campaign-result{font-size:10px;overflow-wrap:anywhere;line-height:1.6;color:#57815b}@media(max-width:1150px){main{grid-template-columns:175px minmax(260px,1fr) 290px}.registry{padding:20px 12px}.inspector{padding:22px 17px}.mouse-help{display:none}.brand{min-width:240px}.view-heading{left:20px;right:20px}.dimension-chip{display:none}}@media(max-width:850px){html,body{overflow:auto}header{padding:0 14px;gap:12px}.brand{min-width:0;font-size:12px}.brand small{font-size:6px}.project-title{display:none}header>.primary{margin-left:auto;font-size:11px}.toolbar{padding:0 15px;gap:10px}.tabs{gap:16px}#save-state{display:none}main{height:auto;grid-template-columns:150px minmax(0,1fr);grid-template-rows:64vh auto}.registry{grid-row:1/3}.inspector{grid-column:2;border-top:1px solid #dce3de}.viewport{min-height:400px}footer{position:sticky;bottom:0}footer>span:last-child{display:none}.view-heading{top:20px}.view-heading h1{font-size:15px}.view-controls button{padding:8px;font-size:8px}.warning-strip{flex-wrap:wrap;gap:4px}.registry-note{font-size:9px}.canvas-note{padding:0 10px}.view-controls{bottom:106px}}

/* Integración en alojamiento estático: estado local siempre visible. */
.browser-notice{font-size:10px;line-height:1.5;padding:10px 20px;background:#e8f1e8;color:#46694c;border-top:1px solid #d3e2d1}.browser-notice a{white-space:nowrap}.view-controls{bottom:142px}header>.primary{white-space:nowrap}footer>span:first-child{letter-spacing:0}.file-link[aria-disabled="true"]{color:#8b9788;cursor:default}#exports-progress{font-size:10px;line-height:1.5;color:#7e8568}@media(max-width:850px){.view-controls{bottom:175px}.browser-notice{padding:9px 12px}.canvas-note{font-size:8px}.warning-strip{font-size:9px}}
