:root{--bg:#f5f5f7;--ink:#161616;--muted:#747474;--line:rgba(22,22,22,.12);--red:#ff2a0e;--panel:rgba(255,255,255,.82);--green:#86a85c;--amber:#c2a05a;--sold:#6f6f6f;--r:22px}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);overflow:hidden}button,input,select{font:inherit}.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 22px 0 24px;border-bottom:1px solid var(--line);background:rgba(245,245,247,.88);backdrop-filter:blur(24px);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:18px;text-decoration:none;color:var(--ink);font-size:11px;letter-spacing:.14em}.brand img{width:95px;height:auto;filter:brightness(.15)}.top-actions{display:flex;align-items:center;gap:8px}.save-state{font-size:11px;color:var(--muted);margin-right:10px}.ghost,.primary,.secondary{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px;cursor:pointer;transition:.18s}.ghost:hover,.secondary:hover{border-color:rgba(22,22,22,.28);transform:translateY(-1px)}.primary{background:var(--ink);color:white;border-color:var(--ink)}.layout{display:grid;grid-template-columns:58px minmax(0,1fr) 330px;height:calc(100vh - 74px)}.tools{border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 8px;background:#ededf0}.tool{width:42px;height:42px;border-radius:13px;border:1px solid transparent;background:transparent;cursor:pointer;font-size:18px}.tool:hover{background:#fff}.tool.is-active{background:var(--ink);color:#fff}.tool.danger{color:var(--red)}.divider{width:28px;border-top:1px solid var(--line);margin:3px 0}.workspace{min-width:0;display:grid;grid-template-rows:auto 1fr;padding:18px 18px 20px}.workspace-head{display:flex;justify-content:space-between;align-items:end;margin:0 4px 12px}.workspace-head small{font-size:10px;letter-spacing:.15em;color:var(--muted)}.workspace-head h1{font-size:31px;line-height:1;margin:5px 0 0;letter-spacing:-.04em}.status-strip{display:flex;gap:16px;font-size:11px;color:var(--muted)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.available{background:var(--green)}.reserved{background:var(--amber)}.sold{background:var(--sold)}.unlisted{border:1px solid #aaa}.viewport{position:relative;overflow:hidden;border-radius:26px;background:#d8d9d5;box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 14px 45px rgba(0,0,0,.08);touch-action:none}.canvas{position:absolute;left:50%;top:50%;width:1601px;height:982px;transform-origin:center center;will-change:transform}.canvas img,.canvas svg{position:absolute;inset:0;width:100%;height:100%}.canvas img{user-select:none;pointer-events:none}.canvas svg{overflow:visible;touch-action:none}.hint{position:absolute;left:16px;bottom:14px;padding:8px 11px;background:rgba(255,255,255,.8);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.8);border-radius:999px;font-size:10px;color:#666;pointer-events:none}.sidebar{border-left:1px solid var(--line);background:#fafafa;min-width:0;display:flex;flex-direction:column}.tabs{display:grid;grid-template-columns:repeat(3,1fr);padding:12px;border-bottom:1px solid var(--line);gap:4px}.tab{border:0;background:transparent;padding:10px 5px;border-radius:999px;font-size:11px;cursor:pointer}.tab.is-active{background:var(--ink);color:white}.panel{display:none;min-height:0;overflow:auto;padding:14px}.panel.is-active{display:block}.search-row{display:grid;grid-template-columns:1fr 115px;gap:8px}.search-row input,.search-row select,.property-form input,.property-form select,#assignSearch{width:100%;border:1px solid var(--line);background:white;border-radius:13px;padding:11px 12px;outline:none}.summary{font-size:11px;color:var(--muted);padding:14px 2px 9px}.lot-list{display:flex;flex-direction:column;gap:5px}.lot-row{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left;border:1px solid transparent;background:transparent;border-radius:14px;padding:10px 11px;cursor:pointer}.lot-row:hover{background:white}.lot-row.is-selected{background:var(--ink);color:white}.lot-row small{color:var(--muted)}.lot-row.is-selected small{color:#aaa}.lot-row .geom{width:7px;height:7px;border-radius:50%;background:#c8c8c8;margin-left:8px}.lot-row .geom.has{background:var(--red)}.empty{font-size:13px;color:var(--muted);padding:26px 8px}.property-form{display:flex;flex-direction:column;gap:12px}.property-title{display:flex;justify-content:space-between;align-items:start;padding:6px 0 4px}.property-title small{font-size:9px;letter-spacing:.15em;color:var(--muted)}.property-title h2{font-size:31px;margin:3px 0;letter-spacing:-.04em}.property-title span{font-size:9px;letter-spacing:.1em;padding:7px 9px;border:1px solid var(--line);border-radius:999px}.property-form label{font-size:10px;color:var(--muted);display:flex;flex-direction:column;gap:6px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wide{width:100%}.secondary{background:white}.data-block{border-bottom:1px solid var(--line);padding:8px 4px 16px;margin-bottom:14px}.data-block h3{font-size:14px;margin:0 0 8px}.data-block p{font-size:12px;line-height:1.55;color:var(--muted)}.shape{fill:rgba(255,42,14,.12);stroke:var(--red);stroke-width:2;vector-effect:non-scaling-stroke;cursor:pointer}.shape.status-Disponible{fill:rgba(134,168,92,.20);stroke:#688742}.shape.status-Apartado{fill:rgba(194,160,90,.21);stroke:#a37c31}.shape.status-Vendido{fill:rgba(80,80,80,.16);stroke:#5b5b5b}.shape.is-selected{stroke:#ff2a0e;stroke-width:4;filter:drop-shadow(0 0 7px rgba(255,42,14,.45))}.shape-label{font-size:12px;font-weight:700;fill:#111;paint-order:stroke;stroke:rgba(255,255,255,.9);stroke-width:4;stroke-linejoin:round;pointer-events:none}.node{fill:#fff;stroke:var(--red);stroke-width:2;vector-effect:non-scaling-stroke;cursor:grab}.draft-line{fill:rgba(255,42,14,.08);stroke:var(--red);stroke-width:2;stroke-dasharray:8 6;vector-effect:non-scaling-stroke}.draft-node{fill:#fff;stroke:var(--red);stroke-width:2;vector-effect:non-scaling-stroke}.modal{position:fixed;inset:0;background:rgba(18,18,18,.28);backdrop-filter:blur(12px);z-index:99;display:grid;place-items:center}.modal[hidden]{display:none}.modal-card{width:min(470px,92vw);max-height:76vh;display:flex;flex-direction:column;background:rgba(250,250,250,.97);border:1px solid rgba(255,255,255,.8);border-radius:28px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.modal-card small{font-size:9px;letter-spacing:.17em;color:var(--muted)}.modal-card h2{font-size:31px;letter-spacing:-.04em;margin:6px 0}.modal-card p{font-size:12px;color:var(--muted);margin:0 0 16px}.assign-list{margin-top:10px;overflow:auto;display:flex;flex-direction:column;gap:4px}.assign-item{border:0;background:white;border-radius:12px;padding:10px 12px;text-align:left;cursor:pointer}.assign-item:hover{background:var(--ink);color:#fff}.modal-actions{margin-top:14px}.modal-actions button{width:100%}@media(max-width:1000px){.layout{grid-template-columns:54px 1fr}.sidebar{position:fixed;right:12px;top:86px;bottom:12px;width:330px;z-index:20;border:1px solid var(--line);border-radius:22px;box-shadow:0 20px 60px rgba(0,0,0,.14)}.status-strip{display:none}}@media(max-width:720px){.top-actions .save-state,.top-actions #undoBtn,.top-actions #redoBtn{display:none}.layout{grid-template-columns:48px 1fr}.workspace{padding:12px 8px}.workspace-head h1{font-size:24px}.sidebar{width:calc(100vw - 76px)}}
