[hidden]{display:none!important}
:root{font-family:"Segoe UI",Arial,sans-serif;color:#183438;background:#edf1f0;font-size:14px;--accent:#137c70;--line:#dce5e2;--muted:#687d7c;--dark:#122c30}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{border:1px solid #d1ddda;border-radius:7px;padding:9px 12px;background:white;color:#183438;cursor:pointer;min-height:38px}button:hover{background:#edf6f2;border-color:#93bdb1}button:disabled{opacity:.5;cursor:not-allowed}button.active,button.primary{background:var(--accent);color:white;border-color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,#viewport:focus-visible{outline:3px solid #d99e30;outline-offset:2px}
.topbar{height:78px;background:var(--dark);color:white;display:flex;justify-content:space-between;align-items:center;padding:0 24px;gap:16px}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;font-size:19px;font-weight:700;letter-spacing:1.5px}.brand-icon{background:#c3e9ad;color:var(--dark);font-size:32px;width:42px;height:44px;border-radius:10px;text-align:center}.brand small{display:block;font-size:9px;font-weight:500;letter-spacing:1.6px;margin-top:5px;color:#a7c2bd}.top-actions{display:flex;align-items:center;gap:7px}.top-actions button{background:#234146;color:#eef6f1;border-color:#45605f}.top-actions button:hover{background:#335d59}#save-state{font-size:12px;color:#b8d6c8;margin-right:12px;max-width:240px}
#workspace{display:grid;grid-template-columns:300px minmax(350px,1fr) 310px;gap:16px;padding:18px;max-width:2100px;margin:auto;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:6px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;color:#648177}h1{font-size:19px;margin:6px 0 10px}h2{font-size:21px;margin:5px 0 0}h3{font-size:19px;margin:8px 0 12px;overflow-wrap:anywhere}.local-badge,.offline-badge{border-radius:20px;padding:5px 9px;background:#e9f5e7;color:#36734f;font-size:11px;white-space:nowrap}.scope-note{font-size:11px;color:var(--muted);line-height:1.55;margin:0 0 14px}.stats{display:flex;gap:8px;margin-bottom:18px}.stat{flex:1;border:1px solid var(--line);border-radius:8px;padding:8px 5px;font-size:10px;text-align:center;color:var(--muted)}.stat strong{display:block;font-size:22px;color:var(--dark);margin-bottom:2px}.stat.green strong{color:#3f792a}.stat.yellow strong{color:#987111}
label{display:block;font-size:12px;font-weight:600;color:#536e68;margin-bottom:12px}input,select,textarea{width:100%;background:white;border:1px solid #ccd9d4;border-radius:6px;color:var(--dark);padding:9px;margin-top:5px;min-height:39px}textarea{resize:vertical;min-height:78px}select{max-width:100%}select[multiple]{min-height:118px;font-size:12px}#search{margin:0 0 12px}.tabs{display:flex;border-bottom:1px solid var(--line);padding-bottom:10px;gap:5px;margin:6px 0 13px}.tabs button{flex:1}.list-heading{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin:4px 0 10px}.list-heading button{font-size:12px;padding:6px 8px}.catalog-list{max-height:calc(100vh - 510px);min-height:160px;overflow:auto;padding-right:3px}.list-item{display:block;width:100%;text-align:left;margin-bottom:7px;padding:10px;border-radius:8px;border-left:4px solid #bdc9c4}.list-item.found{border-left-color:#579d1c}.list-item.search{border-left-color:#e5ba27}.list-item.selected{background:#edf7f3;border-color:#168777;box-shadow:0 0 0 1px #168777}.list-item strong{font-size:13px;overflow-wrap:anywhere}.list-item small{display:block;color:#688079;font-size:11px;line-height:1.4;margin-top:5px}.list-item .row-meta{font-size:10px;display:flex;justify-content:space-between;gap:4px;margin-top:7px;color:#57786b}.empty{font-size:13px;color:var(--muted);line-height:1.65;padding:16px 0}.plan-heading{display:flex;align-items:center;justify-content:space-between;padding:2px 0 15px;gap:10px}.plan-toolbar{display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--line);padding:9px;border-radius:10px;flex-wrap:wrap}.segmented{display:flex;gap:3px}.segmented button{font-size:12px;padding:8px 10px}.zoom-tools{margin-left:auto;display:flex;gap:5px;align-items:center}.zoom-tools span{font-size:11px;min-width:42px;text-align:center}#equipment-type{width:155px;font-size:12px;margin:0}.plan-hint{font-size:12px;color:#5a7770;min-height:32px;margin:10px 2px 4px;line-height:1.45}#viewport{height:calc(100vh - 306px);min-height:400px;max-height:1000px;background:#e3eae5;background-image:radial-gradient(#b8c9c1 .7px,transparent .7px);background-size:18px 18px;border:1px solid #cad7cf;border-radius:10px;overflow:hidden;position:relative;touch-action:none;cursor:grab;user-select:none}#viewport.placing{cursor:crosshair}#world{position:absolute;transform-origin:0 0}#plan-image{width:100%;height:100%;display:block;pointer-events:none}#connections,#markers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.marker{position:absolute;pointer-events:auto;transform:translate(-50%,-50%) scale(var(--marker-scale,1));transform-origin:center;display:flex;align-items:center;gap:4px;padding:0;min-height:0;border:0;background:none!important;z-index:2;cursor:grab}.marker .dot{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;border:2px solid white;box-shadow:0 1px 4px #0006;background:#316e95;color:white;font-weight:700;font-size:12px}.marker.arrival .dot{border-radius:6px;background:#85968e}.marker.arrival.found .dot{background:#579d1c}.marker.arrival.search .dot{background:#dfb622;color:#302908}.marker .marker-label{font-size:11px;max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:3px 5px;background:#fffffff2;border:1px solid #a8bdb3;border-radius:4px}.marker.selected .dot{outline:3px solid #e78039;outline-offset:2px}.canvas-label{position:absolute;bottom:12px;left:12px;pointer-events:none;background:#fffffff0;padding:9px 12px;border-radius:6px;font-size:10px;letter-spacing:1px}.canvas-label span{display:block;letter-spacing:0;font-size:10px;margin-top:4px;color:var(--muted)}.plan-footer{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted);padding:12px 0;line-height:1.5}.check{display:flex;gap:6px;align-items:center;margin:0;white-space:nowrap;font-size:11px}.check input{width:15px;min-height:15px;margin:0}
.references{border:1px solid var(--line);background:white;border-radius:10px;padding:12px}.references summary{cursor:pointer;font-size:12px;font-weight:600}.reference-toolbar{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:11px;color:var(--muted)}.reference-toolbar select{width:190px;margin:0}.references img{display:block;max-width:100%;max-height:520px;margin:auto;object-fit:contain}
.inspector{position:sticky;top:15px;max-height:calc(100vh - 110px);overflow:auto}.inspector .intro-icon{font-size:30px;color:#3c8c78;background:#edf6ee;width:65px;height:65px;border-radius:16px;display:grid;place-items:center;margin:20px 0}.inspector p{font-size:12px;line-height:1.7;color:var(--muted)}.inspector .form-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px}.inspector .form-pair label{min-width:0}.inspector input,.inspector select,.inspector textarea{font-size:12px}.source-box,.warning{font-size:11px;line-height:1.6;background:#f1f5f2;border-radius:6px;padding:10px;margin:10px 0;overflow-wrap:anywhere}.warning{background:#fff4dc;color:#785716}.danger{color:#a33c32!important}.inspector details{margin:12px 0;font-size:12px}.inspector summary{cursor:pointer;color:#386b5e}.inspector .actions{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.inspector .actions button{font-size:12px}.position-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:5px;margin:8px 0}.position-row label{margin:0;font-size:10px}.position-row input{padding:6px}.position-row button{padding:7px}.field-note{font-size:10px;color:#70837a;margin-top:-6px;margin-bottom:12px}.link-checks{max-height:200px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:8px}.link-checks label{font-weight:400;font-size:11px;margin:0 0 7px;display:flex;gap:7px;align-items:start}.link-checks input{min-height:15px;width:15px;flex-shrink:0;margin:0}.link-search{margin:0 0 8px!important}#error,#notice{margin:12px 18px 0;padding:12px 16px;border-radius:8px;line-height:1.5;font-size:13px}#error{background:#ffe8e3;color:#8b2921;border:1px solid #e8b3a9}#notice{background:#e4f3e8;color:#2c6c49;border:1px solid #a7d3b5}dialog{border:1px solid var(--line);border-radius:15px;padding:25px;max-width:650px;max-height:85vh;line-height:1.7;color:var(--dark)}dialog::backdrop{background:#142f3566}dialog h2{margin-top:0}dialog p,dialog li{font-size:13px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}body.busy{cursor:progress}.print-title{display:none}
.marker{transform:translate(-14px,-14px) scale(var(--marker-scale,1));transform-origin:14px 14px}
.marker.associated .dot{outline:3px solid #137c70;outline-offset:2px}.marker[aria-pressed]{cursor:pointer}.marker.associated .marker-label{background:#d9f1e5;border-color:#137c70}#manage-zones{width:100%;margin-bottom:12px;font-size:12px}#zone-error{color:#a33c32}#zone-dialog{width:min(480px,95vw)}#zone-dialog h2{margin-bottom:18px}
.point-card{border:1px solid var(--line);border-radius:8px;margin:12px 0;padding:10px}.point-card h4{margin:0 0 12px}.point-card button{margin-top:6px;font-size:12px}#link-point-label{margin:0;min-width:160px;max-width:100%;flex:1}#link-point{margin:0;font-size:12px}.segmented{flex-wrap:wrap}.link-option>label{display:flex;gap:6px;align-items:flex-start}.link-option>label:has(select){display:block;margin-left:22px}.link-option select{width:100%}.link-option small{display:block;margin-left:22px}.inspector .link-checks:has([data-link-point]){max-height:340px}
@media(min-width:1600px){#workspace{grid-template-columns:320px minmax(500px,1fr) 340px}}
@media(max-width:1150px){#workspace{grid-template-columns:260px minmax(320px,1fr)}.inspector{position:static;grid-column:1/-1;max-height:none}.inspector form{max-width:850px}.catalog-list{max-height:480px}.topbar{padding:12px 16px;height:auto;min-height:78px}.brand{font-size:16px}#save-state{max-width:140px}.offline-badge{white-space:normal;font-size:10px}}
@media(max-width:700px){.topbar{flex-direction:column;align-items:stretch;gap:12px}.brand{justify-content:center}.top-actions{justify-content:center;flex-wrap:wrap}.top-actions button{font-size:12px}#save-state{max-width:none;flex-basis:100%;text-align:center;margin:0}#workspace{display:flex;flex-direction:column;padding:10px;gap:12px}.catalog,.plan-panel,.inspector{width:100%}.catalog{padding:14px}.catalog-list{max-height:220px;min-height:0}.stats{margin-bottom:10px}.plan-heading h2{font-size:18px}.plan-toolbar{gap:6px}.zoom-tools{margin-left:0}#viewport{height:58vh;min-height:340px}.plan-footer{flex-direction:column;gap:5px}.reference-toolbar{flex-wrap:wrap}.inspector{max-height:none}.canvas-label span{max-width:180px}.panel{border-radius:10px}}
@media print{@page{size:A3 landscape;margin:10mm}.topbar,.catalog,.inspector,.plan-toolbar,.plan-hint,.references,#error,#notice,.plan-footer,.offline-badge{display:none!important}body{background:white}#workspace{display:block;padding:0}.plan-heading{display:block}#viewport{height:165mm;width:100%;border:0;background:white;max-height:none;min-height:0}.canvas-label{display:none}.plan-panel{width:100%}.marker{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
