.territory-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:24px}.territory-head h1{margin:8px 0;font-size:31px}.territory-head p{margin:0}.territory-stats{display:flex;gap:18px;background:#fff;padding:15px 21px;border:1px solid var(--line);border-radius:13px;white-space:nowrap}.territory-stats span{display:grid;gap:4px;text-align:center;color:var(--muted);font-size:11px}.territory-stats b{font-size:22px;color:var(--ink);font-variant-numeric:tabular-nums}.territory-controls{display:flex;justify-content:space-between;align-items:end;gap:18px;flex-wrap:wrap;margin-bottom:15px}.territory-search{display:flex;gap:8px;align-items:end;flex:1;max-width:440px}.territory-search label{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap;align-self:center}.territory-search input{min-width:100px;width:100%;padding:11px 13px;border-radius:9px;border:1px solid #b9c9bd;background:#fff}.territory-tools{display:flex;gap:6px;flex-wrap:wrap}.territory-tools button{white-space:nowrap}.territory-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:17px}.territory-main{min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 3px 24px #203c2b0b}.territory-map-title{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0 0 12px}.territory-map-title span{font-size:11px;letter-spacing:.08em;font-weight:800;color:#466b52}.territory-map-title small{color:#76877d;font-size:11px;text-align:right}.map-live-dot{display:inline-block;width:7px;height:7px;background:#53a36f;border-radius:50%;margin-right:5px}.territory-viewport{height:min(69vh,715px);min-height:450px;position:relative;overflow:hidden;background:linear-gradient(125deg,#f8faf7,#eff5ed);border:1px solid #d7e4d9;border-radius:12px;touch-action:none;cursor:grab;outline-offset:3px}.territory-viewport:active{cursor:grabbing}.territory-viewport.is-drawing{cursor:crosshair}.territory-scene{position:absolute;top:0;left:0;width:1435px;height:1590px;transform-origin:0 0;will-change:transform;user-select:none}.territory-scene img{position:absolute;inset:0;width:1435px;height:1590px;object-fit:fill;pointer-events:none;user-select:none}.territory-scene svg{position:absolute;inset:0;width:1435px;height:1590px;overflow:visible;pointer-events:none}.territory-scene polygon{transition:fill-opacity .1s}.territory-scene .lot-selection-halo{fill:#eb9822;fill-opacity:.13;stroke:#d77a0f;stroke-width:3;vector-effect:non-scaling-stroke}.territory-scene .lot-selection{fill:#f3a028;stroke:#fff;stroke-width:3;vector-effect:non-scaling-stroke}.territory-scene .lot-case-dot{fill:#d95d3c;stroke:white;stroke-width:1;vector-effect:non-scaling-stroke}.zone-map-label{fill:#224939;stroke:white;stroke-width:2.3;paint-order:stroke;font-weight:800;font-size:17px;opacity:.8}.map-zoom-badge{position:absolute;bottom:12px;right:12px;color:#28513d;font-size:11px;background:#ffffffdb;box-shadow:0 2px 12px #0001;border-radius:8px;padding:7px 12px;font-weight:800}.map-missing{position:absolute;top:20%;left:50%;transform:translateX(-50%);max-width:350px;width:86%;background:#fffef4f0;border:1px solid #d9d0a7;box-shadow:0 14px 30px #0001;border-radius:16px;text-align:center;padding:25px;pointer-events:none}.map-missing b{font-size:16px}.map-missing p{font-size:13px}.territory-caption{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;color:#6e7e75;font-size:10px;margin:13px 5px}.legend-dot{display:inline-block;width:7px;height:7px;background:#eea332;border-radius:50%;margin-right:4px}.legend-polygon{display:inline-block;width:11px;height:11px;background:#5d9c7c30;border:1px solid #4c8b65;margin-right:4px}.territory-upload{margin-top:14px;padding:16px;background:#f4f8f2;border:1px dashed #adc6b1;border-radius:12px}.territory-upload>b{font-size:13px}.territory-upload p{margin:4px 0 11px;font-size:12px}.territory-upload .forms{align-items:center}.territory-upload input{padding:9px}.territory-aside{display:flex;flex-direction:column;gap:16px;min-width:0}.territory-panel{background:#fff;padding:20px;border:1px solid var(--line);border-radius:15px;box-shadow:0 4px 25px #17462b05}.territory-panel h2{font-size:16px;margin:0 0 12px}.territory-panel h3{font-size:13px}.territory-panel p{font-size:13px}.territory-panel form{display:grid;gap:13px;margin-top:14px}.territory-panel label{display:grid;gap:6px;font-size:11px;color:#63786d;font-weight:700}.territory-panel input,.territory-panel textarea,.territory-panel select{width:100%;padding:10px 11px;border:1px solid #cbdad0;border-radius:8px;background:#fff;color:var(--ink)}.territory-panel button.primary{width:100%}.territory-panel .aside-hint{font-size:11px;color:#57745e;background:#eef5ec;border-radius:9px;padding:12px;margin-top:13px;line-height:1.6}.zone-heading{display:flex;justify-content:space-between}.zone-heading span{font-size:11px;color:#4b7258;background:#e6f0e5;border-radius:20px;padding:5px 9px;height:max-content}.sector-item{display:flex;gap:10px;text-align:left;border:1px solid #e7ede6;background:#fff;border-radius:10px;width:100%;padding:11px;margin:7px 0;align-items:flex-start}.sector-item:hover{background:#f0f6f0}.sector-item i{width:11px;height:11px;border-radius:4px;flex-shrink:0;margin-top:3px}.sector-item span{display:grid;gap:5px}.sector-item strong{font-size:12px}.sector-item small{font-size:11px;color:#76847b;line-height:1.4}.lot-eyebrow{font-size:10px;letter-spacing:.16em;color:#7c9681;font-weight:800}.lot-title{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.lot-title h2{font-size:30px;color:#244e39;letter-spacing:-.04em;margin:0}.lot-facts{margin:16px 0;border-top:1px solid #e3ebe3}.lot-facts>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #e3ebe3}.lot-facts dt{font-size:11px;color:#77877c}.lot-facts dd{margin:0;font-size:12px;color:#244d36;font-weight:700;text-align:right}.lot-section-title{margin-top:24px}.zone-buttons{display:flex;gap:7px}.zone-buttons button{flex:1}.zone-buttons .outline{font-size:11px}.map-step{background:#fff6e9;color:#9d671f;padding:9px;border-radius:7px;margin-bottom:11px;font-size:12px}.text-button{border:0;background:none;color:#6d806f;padding:8px;font-weight:700}.text-button:hover{text-decoration:underline}@media(max-width:1300px){.territory-layout{grid-template-columns:minmax(0,1fr) 280px}.territory-head{align-items:flex-start}}@media(max-width:1000px){.territory-layout{grid-template-columns:1fr}.territory-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.territory-aside .territory-panel:first-child{grid-row:span 2}.territory-viewport{height:550px}.territory-stats{gap:11px;padding:12px}.territory-map-title{flex-direction:column;align-items:flex-start;gap:4px}}@media(max-width:680px){.territory-head{flex-direction:column}.territory-stats{width:100%;justify-content:space-around}.territory-controls{align-items:stretch}.territory-search{max-width:none;width:100%}.territory-tools{width:100%}.territory-tools button{font-size:11px}.territory-viewport{height:490px;min-height:400px}.territory-aside{display:flex;flex-direction:column}.territory-aside .territory-panel{width:100%}.territory-map-title small{font-size:10px}.territory-caption{font-size:10px}}.zone-danger{margin-top:14px;color:#a3443c;border:1px solid #f1d5d1;border-radius:8px;width:100%}
.zone-danger:hover{background:#fff0ee;text-decoration:none}

/* Vector PDF is drawn at the actual viewport/device scale, for sharp zoom without huge images. */
#atlas-vector-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.territory-scene{z-index:2}
.territory-viewport.vector-ready #atlas-image{opacity:0}
#map-upload-vector{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:12px 0 20px}
#map-upload-vector label{font-size:12px;font-weight:700;display:grid;gap:6px}
#map-upload-vector input{max-width:260px}

.territory-viewport.is-node-editing,.territory-viewport.is-node-editing:active{cursor:crosshair}#sector-node-tools .zone-buttons{margin:10px 0}#sector-node-status{line-height:1.55;overflow-wrap:anywhere}#sector-node-save:disabled{opacity:.55;cursor:not-allowed}
