:root{--bg:#eaeef2;--panel:#ffffff;--line:#d3dae2;--fg:#15202b;--muted:#5a6878;--accent:#e09a12;--accent-ink:#8a5800;--accent-soft:#fdf1d8;--canvas:#fbfcfd;--grid:#e8edf2;--grid-major:#cdd6df;--wall:#24303c;--wall3d:#e9ecef;--floor3d:#d8dee5;--sel:#0b78e3;--warn:#c2410c;--ok:#15803d;--f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--f-head:"IBM Plex Sans Condensed","IBM Plex Sans",system-ui,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1318;--panel:#161d25;--line:#2a3541;--fg:#e3e9ef;--muted:#92a0af;--accent:#f2b230;--accent-ink:#f2b230;--accent-soft:#3a2c0e;--canvas:#10161c;--grid:#18212a;--grid-major:#253240;--wall:#cfd8e1;--wall3d:#9aa6b2;--floor3d:#2a333d;--sel:#4aa3ff;--warn:#fb923c;--ok:#4ade80;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e1318;--panel:#161d25;--line:#2a3541;--fg:#e3e9ef;--muted:#92a0af;--accent:#f2b230;--accent-ink:#f2b230;--accent-soft:#3a2c0e;--canvas:#10161c;--grid:#18212a;--grid-major:#253240;--wall:#cfd8e1;--wall3d:#9aa6b2;--floor3d:#2a333d;--sel:#4aa3ff;--warn:#fb923c;--ok:#4ade80;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0}[hidden]{display:none!important}body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:14px;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}#root{height:100%}.app{display:grid;grid-template-rows:auto 1fr;height:100%;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px max(16px,env(safe-area-inset-left,0px));background:var(--panel);border-bottom:1px solid var(--line)}.brand{font-family:var(--f-head);font-weight:600;font-size:17px;letter-spacing:.01em;display:flex;align-items:center;gap:8px;white-space:nowrap}.brand i{display:inline-block;width:10px;height:18px;background:var(--accent);clip-path:polygon(60% 0,0 58%,45% 58%,30% 100%,100% 38%,55% 38%)}#pname{border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:4px;min-width:0;width:200px}#pname:hover,#pname:focus{border-color:var(--line);outline:none}.seg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.seg button{border:0;background:transparent;padding:5px 12px;cursor:pointer;color:var(--muted)}.seg button[aria-pressed=true]{background:var(--fg);color:var(--panel)}.hbtn{border:1px solid var(--line);background:var(--panel);padding:5px 10px;border-radius:6px;cursor:pointer}.hbtn:hover{border-color:var(--muted)}.hbtn:disabled{opacity:.4;cursor:default}.spacer{flex:1}main{display:grid;grid-template-columns:auto 1fr 300px;min-height:0}.tools{background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;padding:10px 8px;display:flex;flex-direction:column;gap:14px;width:196px}.tgroup{display:flex;flex-direction:column;gap:2px}.tgroup h3{font:600 11px var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 4px 6px}.tool{display:flex;align-items:center;gap:8px;border:1px solid transparent;background:transparent;border-radius:6px;padding:4px 6px;cursor:pointer;text-align:left;font-size:13px}.tool:hover{background:var(--bg)}.tool[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.tool canvas,.tool svg,.ptitle canvas{width:28px;height:28px;flex:none}.tool kbd,.tool .h{margin-left:auto;font:11px var(--f-mono);color:var(--muted)}.soon{font-size:12px;color:var(--muted);padding:4px 6px;display:flex;justify-content:space-between}.soon span{font:10px var(--f-mono);border:1px solid var(--line);border-radius:3px;padding:0 4px}.views{position:relative;display:grid;min-width:0;min-height:0}.views.split{grid-template-columns:1fr 1fr}.pane{position:relative;min-width:0;min-height:0;overflow:hidden}.views.split .pane+.pane{border-left:1px solid var(--line)}canvas.plan{position:absolute;inset:0;width:100%;height:100%;touch-action:none;display:block}.view3d{background:var(--canvas)}.view3d canvas{display:block;width:100%!important;height:100%!important}.status{position:absolute;left:10px;bottom:10px;right:10px;display:flex;gap:10px;align-items:flex-end;pointer-events:none}.hint{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:5px 9px;font-size:12px;color:var(--muted);max-width:70%}.hint b{color:var(--fg);font-weight:600}.coords{margin-left:auto;white-space:nowrap;font:12px var(--f-mono);color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-variant-numeric:tabular-nums}.tag3d{position:absolute;top:10px;left:10px;font:600 11px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:3px 7px;display:flex;gap:10px;align-items:center}.tag3d label{display:flex;gap:4px;align-items:center;text-transform:none;letter-spacing:0;font-weight:400;font-size:12px;cursor:pointer}.zoom{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:4px}.zoom button{width:30px;height:30px;border:1px solid var(--line);background:var(--panel);border-radius:6px;cursor:pointer;font-size:15px;line-height:1}.side{background:var(--panel);border-left:1px solid var(--line);overflow-y:auto;min-width:0}.side details{border-bottom:1px solid var(--line)}.side summary{cursor:pointer;padding:10px 14px;font:600 12px var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);list-style:none;display:flex;justify-content:space-between}.side summary:after{content:"+";font-family:var(--f-mono)}.side details[open] summary:after{content:"−"}.sbody{padding:0 14px 14px;display:flex;flex-direction:column;gap:10px}.prop{display:grid;grid-template-columns:1fr 128px;gap:8px;align-items:center;font-size:13px}.prop span{color:var(--muted)}.prop input,.prop select{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:5px;padding:4px 6px;min-width:0}.prop input[type=number]{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.ptitle{font:600 15px var(--f-head);display:flex;align-items:center;gap:8px}.pnote{font-size:12px;color:var(--muted);line-height:1.45;margin:0}.row{display:flex;gap:6px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:var(--bg);border-radius:5px;padding:5px 10px;cursor:pointer;font-size:13px}.btn:hover{border-color:var(--muted)}.btn.danger{color:var(--warn)}.btn.primary{background:var(--fg);color:var(--panel);border-color:var(--fg)}.circ{display:grid;grid-template-columns:14px 1fr auto auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px}.circ.over{border-color:var(--warn)}.sw{width:12px;height:12px;border-radius:3px}.circ input{border:0;background:transparent;padding:0;min-width:0;width:100%}.circ .k{font:11px var(--f-mono);color:var(--muted)}.circ .n{font:12px var(--f-mono);font-variant-numeric:tabular-nums}.circ.over .n{color:var(--warn);font-weight:600}.circ button{border:0;background:transparent;cursor:pointer;color:var(--muted);padding:0 2px}table.mat{width:100%;border-collapse:collapse;font-size:12.5px}table.mat td{padding:4px 0;border-bottom:1px solid var(--line);vertical-align:top}table.mat td:last-child{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:8px}table.mat tr.sec td{font:600 11px var(--f-body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-top:10px;border-bottom:0}.warns{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.warns li{font-size:12.5px;line-height:1.4;padding:6px 8px;border-radius:5px;border-left:3px solid var(--warn);background:var(--bg)}.warns li.ok{border-left-color:var(--ok)}.modal{position:fixed;inset:0;background:#00000073;display:grid;place-items:center;z-index:50;padding:16px}.mbox{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;width:min(560px,100%);display:flex;flex-direction:column;gap:12px}.mbox h2{margin:0;font:600 18px var(--f-head)}.mbox textarea{width:100%;height:240px;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:8px;font:12px var(--f-mono);resize:vertical}.mmsg{font-size:12px;color:var(--muted);min-height:1em}:focus-visible{outline:2px solid var(--sel);outline-offset:1px}@media(max-width:900px){body{overflow:auto}.app{height:auto;min-height:100%}main{grid-template-columns:1fr;grid-template-rows:auto 62vh auto}.tools{width:auto;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px max(16px,env(safe-area-inset-left,0px))}.tgroup{flex-direction:row;align-items:center}.tgroup h3,.tool kbd,.tool .h,.tool .lbl,.soon{display:none}.views.split{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.views.split .pane+.pane{border-left:0;border-top:1px solid var(--line)}.side{border-left:0}#pname{width:140px}}.check{display:flex;gap:8px;align-items:center;font-size:13px;cursor:pointer}.check input{width:auto}label.btn{display:inline-flex;align-items:center}.views>.pane:only-child{grid-column:1/-1}.entrar{min-height:100%;display:grid;place-items:center;padding:16px;overflow:auto}.ecard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px 24px;width:min(420px,100%);display:flex;flex-direction:column;gap:14px;align-items:flex-start}.ecard h1{margin:0;font:600 24px var(--f-head)}.ecard .pnote{font-size:13.5px}.gbtn{min-height:44px}.linkbtn{border:0;background:transparent;padding:0;color:var(--muted);text-decoration:underline;cursor:pointer;font-size:12.5px;text-align:left}.linkbtn:hover{color:var(--fg)}.hbtn.primary{background:var(--fg);color:var(--panel);border-color:var(--fg)}.saved{font-size:12px;color:var(--muted);white-space:nowrap}.saved.error,.saved.conflicto{color:var(--warn)}.user{display:flex;align-items:center;gap:8px;min-width:0}.user img{width:26px;height:26px;border-radius:50%}.uname{font-size:13px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.banner{flex-basis:100%;font-size:12.5px;color:var(--warn)}.tinput{flex:1;min-width:180px;border:1px solid var(--line);background:var(--bg);border-radius:5px;padding:5px 8px}.plist{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto}.pitem{display:flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:6px;padding:6px 8px}.pitem.actual{border-color:var(--accent);background:var(--accent-soft)}.pabrir{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:0;background:transparent;padding:0;cursor:pointer;text-align:left}.pabrir b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}table.miembros{width:100%;border-collapse:collapse;font-size:13px}table.miembros td{padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:middle;word-break:break-all}table.miembros td:nth-child(2),table.miembros td:nth-child(3){width:1%;white-space:nowrap;word-break:normal}.fs{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:10px}.tool:disabled{opacity:.35;cursor:default}.tool:disabled:hover{background:transparent}.btn:disabled{opacity:.45;cursor:default}
