:root{font-family:Inter,Segoe UI,system-ui,sans-serif;color:#182432;background:#edf1f3;font-synthesis:none}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-width:1000px;min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}.app-header{min-height:94px;padding:22px 34px;color:#fff;background:linear-gradient(125deg,#0e2438,#17384b 70%,#205b63);display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 12px #0917233d}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:28px;letter-spacing:-.03em}h2{margin-bottom:7px;font-size:17px;letter-spacing:-.015em}.eyebrow{margin-bottom:3px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;color:#76d0c7}.prototype-badge{padding:6px 10px;border:1px solid rgba(255,255,255,.3);border-radius:999px;font-size:11px;background:#ffffff14}.app-header-actions{display:flex;align-items:center;gap:10px}.input-body .app-header{min-height:72px;padding:13px 24px}.input-body .app-header h1{font-size:23px}.input-body .app-header .eyebrow{font-size:9px}.input-body main{padding:14px 18px 22px}main{padding:22px 26px 32px}.workflow{display:grid;grid-template-columns:1.12fr 1fr 1.05fr;gap:10px;margin-bottom:18px;align-items:stretch}.input-main .workflow{margin-bottom:12px}.window-help{margin:0;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:5px 12px;color:#687782;font-size:11px;text-align:center}.window-help a{color:#24717a;font-weight:700;text-decoration:none}.window-help a:hover,.window-help a:focus-visible{color:#174e56;text-decoration:underline}.main-dossier{margin:0 0 14px;overflow:hidden;border:1px solid #c8d5da;border-radius:12px;background:#fff;box-shadow:0 5px 20px #11273614}.main-dossier-header{padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#fff;background:linear-gradient(125deg,#17384b,#205b63)}.main-dossier-header h2{margin-bottom:3px;font-size:18px}.main-dossier-header p{margin-bottom:0;color:#d2e4e8;font-size:10px}.main-dossier-header .eyebrow{margin-bottom:2px;color:#76d0c7}.dossier-page-count{flex:0 0 auto;padding:5px 9px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:#ffffff1a;font-size:10px;font-weight:800}.main-dossier-body{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(500px,1.4fr)}.dossier-settings,.dossier-pages-panel{min-width:0;padding:15px 17px}.dossier-settings{border-right:1px solid #dbe3e6;background:#f8fafb}.dossier-settings label{display:grid;gap:4px;color:#536873;font-size:9px;font-weight:750}.dossier-settings input,.dossier-settings textarea{width:100%;margin:0;padding:7px 8px;border:1px solid #b7c5cc;border-radius:6px;color:#26343b;background:#fff;font-family:inherit;font-size:10px;font-weight:500}.dossier-settings textarea{resize:vertical;line-height:1.35}.dossier-field-grid{margin:8px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.dossier-action-grid{margin-top:10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.dossier-action-grid button{min-width:0;padding:7px 6px;font-size:9px}.dossier-settings>small{display:block;margin-top:8px;color:#687982;font-size:8.5px;line-height:1.4}.dossier-pages-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.dossier-pages-heading strong{color:#263c48;font-size:12px}.dossier-pages-heading span{color:#74828a;font-size:8.5px}.dossier-page-list{min-height:88px;max-height:470px;margin-top:9px;display:grid;align-content:start;gap:6px;overflow:auto}.dossier-page-list>p{margin:25px 0;color:#78858d;font-size:10px;text-align:center}.dossier-page-item{padding:7px 8px;display:grid;grid-template-columns:78px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid #d1dce0;border-radius:7px;background:#f8fafb}.dossier-page-item>img{display:block;width:78px;height:48px;object-fit:contain;border:1px solid #d5dee2;border-radius:4px;background:#fff}.dossier-page-description{min-width:0}.dossier-page-description strong,.dossier-page-description span,.dossier-page-description small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dossier-page-description strong{color:#2d424c;font-size:10px}.dossier-page-description span{margin-top:2px;color:#64757d;font-size:8.5px}.dossier-page-description small{margin-top:2px;color:#829097;font-size:8px}.dossier-page-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:3px}.dossier-page-actions button{min-width:28px;padding:4px 6px;background:#fff}.dossier-page-item.editing{align-items:start;border-color:#74bbb5;background:#f3fbfa;box-shadow:inset 3px 0 #137c76}.dossier-page-item.editing>img{margin-top:1px}.dossier-page-editor{grid-column:1 / -1;padding:10px;display:grid;gap:8px;border-top:1px solid #cfe0df;background:#fff}.dossier-page-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:8px}.dossier-page-editor label{display:grid;gap:4px;color:#536873;font-size:9px;font-weight:750}.dossier-page-editor input,.dossier-page-editor textarea{width:100%;margin:0;padding:7px 8px;border:1px solid #b7c5cc;border-radius:6px;color:#26343b;background:#fff;font-family:inherit;font-size:10px;font-weight:500}.dossier-page-editor textarea{resize:vertical;line-height:1.4}.dossier-page-editor textarea[data-dossier-field=legend]{min-height:100px;font-family:Consolas,Cascadia Mono,monospace}.dossier-page-editor>small{color:#687982;font-size:8.5px;line-height:1.4}.dossier-page-editor-actions{display:flex;justify-content:flex-end;gap:7px}.dossier-page-editor-actions button{padding:6px 10px}.dossier-export{width:100%;margin-top:10px}.dossier-status{padding:8px 17px;border-top:1px solid #dbe3e6;color:#60727b;background:#f7fafb;font-size:9px}.dossier-status.error{color:#9d312a;background:#ffedeb}.step-card{position:relative;min-height:218px;padding:15px 15px 14px 48px;border:1px solid #cdd8dc;border-radius:9px;background:#fff;box-shadow:0 3px 11px #152b3c0e}.step-number{position:absolute;left:14px;top:15px;width:23px;height:23px;display:grid;place-items:center;border-radius:5px;color:#fff;background:#137c76;font-size:11px;font-weight:800}.step-card h2{margin-bottom:4px;font-size:15px}.step-card p{margin-bottom:9px;color:#61707c;font-size:10px;line-height:1.4}input[type=file]{display:none}.file-button,.text-button,button{border-radius:6px;border:1px solid #b7c5cc;padding:7px 10px;background:#fff;color:#213443;font-weight:650;font-size:11px;display:inline-block}.file-button:hover,.text-button:hover,button:hover:not(:disabled){border-color:#167f79}button.primary{border-color:#126d69;background:#137c76;color:#fff}button.secondary{margin-top:8px}.status{margin-top:8px;padding:8px;border-radius:6px;font-size:10px;line-height:1.4}.status.muted{background:#f2f4f5;color:#75828b}.status.success{background:#e4f5ef;color:#12604f}.status.busy{background:#edf5f8;color:#28596a}.status.error{background:#ffedeb;color:#9d312a;white-space:pre-wrap}.drop-zone{height:72px;margin-bottom:7px;border:1.5px dashed #9eb1ba;border-radius:6px;background:#f7f9fa;display:grid;place-items:center;overflow:hidden;color:#71818b;font-size:10px;transition:.16s ease}.drop-zone.dragging{border-color:#137c76;background:#eaf7f4}.drop-zone img{width:100%;height:100%;object-fit:cover;object-position:top}.text-button{margin-right:5px}.compact-heading{margin:9px 0 5px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#536873}.compact-heading strong{font-size:9px;text-transform:uppercase;letter-spacing:.06em}.compact-heading span{font-size:8px;color:#849199}.recent-map-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.recent-map-empty{grid-column:1 / -1;padding:7px 8px;border:1px dashed #d1dadd;border-radius:5px;color:#7c8990;background:#f8fafb;font-size:8.5px;text-align:center}.recent-map-item{min-width:0;padding:5px 6px;display:grid;grid-template-columns:28px minmax(0,1fr) 8px;align-items:center;gap:5px;text-align:left;background:#f8fafb}.recent-map-item:hover:not(:disabled){background:#edf7f5}.recent-map-type{padding:3px 2px;border-radius:3px;color:#126d69;background:#dff1ee;font-size:7px;font-weight:850;text-align:center}.recent-map-copy{min-width:0}.recent-map-copy strong,.recent-map-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-map-copy strong{font-size:8.5px}.recent-map-copy small{margin-top:1px;color:#75838b;font-size:7px}.recent-map-open{color:#7a8b93;font-size:15px;line-height:1}.boundary-mode-switch{margin-bottom:7px;padding:2px;display:grid;grid-template-columns:1fr 1fr;gap:2px;border:1px solid #ced9dd;border-radius:6px;background:#edf1f3}.boundary-mode{padding:5px 7px;border:0;border-radius:4px;color:#61717a;background:transparent;font-size:9px}.boundary-mode.active{color:#126d69;background:#fff;box-shadow:0 1px 4px #1a334121}.compact-actions{display:flex;align-items:center;gap:4px}.compact-actions .text-button{margin:0}.compact-actions button.secondary{margin-top:0}.boundary-mode-panel{min-width:0}.empty-state{padding:15px;border-radius:7px;background:#f3f5f6;color:#7b878f;font-size:12px}.request-data dl{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 10px}.request-data dl div{min-width:0;padding:7px;border-radius:6px;background:#f2f5f6}.request-data dt{color:#77848d;font-size:9px;font-weight:800;text-transform:uppercase}.request-data dd{margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700}.references{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.reference{padding:5px 7px;border-radius:5px;background:#eaf0f2;font-size:11px;font-weight:800}.reference.signal{background:#ffe6e3;color:#9e3028}.signal-code,.signal-code-input,.switch-code,.switch-code-input,.match-label,.signal-drag-ghost{font-family:Consolas,Cascadia Mono,monospace;font-variant-numeric:slashed-zero;font-feature-settings:"zero" 1}.s460-request-signals{margin:8px 0;padding:7px 9px;display:flex;align-items:center;gap:8px;border:1px solid #dfbe28;border-radius:6px;color:#4b3b00;background:#fff7bd;font-size:10px}.s460-request-signals strong{padding:2px 5px;border-radius:3px;color:#fff;background:#725700;font-size:8px;letter-spacing:.05em}.reference.switch{background:#fff3ce;color:#715911}.reference small{display:block;margin-top:1px;opacity:.65;font-size:8px;text-transform:uppercase}details{margin:9px 0;font-size:11px;color:#50616d}summary{cursor:pointer}textarea{width:100%;margin-top:7px;resize:vertical;border:1px solid #cbd4d9;border-radius:6px;padding:8px;background:#f8fafb;font-family:Consolas,monospace;font-size:10px}.manual-signal-input{margin-top:0;padding-top:2px}.manual-signal-input strong,.manual-signal-input small{display:block}.manual-signal-input strong{color:#263c48;font-size:11px}.manual-signal-input small{margin-top:3px;color:#687982;font-size:9px;line-height:1.35}.manual-signal-input textarea{min-height:58px;resize:vertical}.manual-signal-input button{margin-top:5px}.manual-signal-status{display:block;min-height:12px;margin-top:3px;color:#687982;font-size:8px}.manual-signal-status.success{color:#12604f}.manual-signal-status.error{color:#9d312a}.signal-correction-editor{margin:9px 0;padding:8px;border:1px solid #d4dfe3;border-radius:7px;background:#f8fafb}.signal-correction-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.signal-correction-heading h3{margin:0;color:#53646d;font-size:10px;letter-spacing:.05em;text-transform:uppercase}.signal-correction-heading small{display:block;margin-top:2px;color:#74848c;font-size:8px}.signal-correction-heading button.secondary{flex:0 0 auto;margin-top:0;padding:5px 7px;font-size:9px}.signal-correction-fields{margin-top:7px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.signal-correction-fields label{min-width:0}.signal-correction-fields label span{display:block;margin-bottom:2px;color:#849199;font-size:7px;text-transform:uppercase}.signal-code-input,.switch-code-input{width:100%;min-width:0;padding:5px 6px;border:1px solid #b9c8ce;border-radius:5px;background:#fff;font-size:11px;font-weight:800;text-transform:uppercase}.signal-code-input{color:#9e3028}.switch-code-input{color:#715911}.signal-code-input[aria-invalid],.switch-code-input[aria-invalid]{border-color:#c83d34;outline:2px solid rgba(200,61,52,.13)}.signal-correction-status{min-height:11px;margin:4px 0 0;font-size:8px}.signal-correction-status.success{color:#12604f}.signal-correction-status.error{color:#9d312a}.plan-progress{margin-top:10px;padding:10px;border:1px solid #cfe0e3;border-radius:8px;background:#f2f8f8}.plan-progress-status{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;color:#345966;font-size:10px}.plan-progress-status strong{color:#126d69;font-variant-numeric:tabular-nums}.plan-progress-track{height:8px;overflow:hidden;border-radius:999px;background:#d7e4e6}.plan-progress-fill{position:relative;display:block;width:0;height:100%;overflow:hidden;border-radius:inherit;background:linear-gradient(90deg,#137c76,#36aaa1);transition:width .28s ease}.plan-progress-fill:after{content:"";position:absolute;inset:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:progress-shimmer 1.1s linear infinite}.plan-progress.complete .plan-progress-fill{background:#278b6b}.plan-progress.failed{border-color:#ecc3bf;background:#ffedeb}.plan-progress.failed .plan-progress-status,.plan-progress.failed .plan-progress-status strong{color:#9d312a}.plan-progress.failed .plan-progress-fill{background:#c74b42}@keyframes progress-shimmer{0%{transform:translate(-120%)}to{transform:translate(260%)}}.workspace-panel{overflow:hidden;border:1px solid #cdd7dc;border-radius:12px;background:#fff;box-shadow:0 5px 22px #11273614}.workspace-toolbar{min-height:68px;padding:13px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dbe2e6}.workspace-toolbar h2{margin:0}.zoom-controls{display:flex;align-items:center;gap:5px}.zoom-controls button{min-width:32px;padding:6px 9px}.zoom-controls span{min-width:47px;text-align:center;font-size:11px;color:#5b6973}.warnings{padding:8px 18px;background:#fff4d9;color:#70590e;border-bottom:1px solid #ead998;font-size:11px}.warnings p{margin:2px 0}.canvas-wrap{min-height:430px;max-height:60vh;overflow:auto;cursor:grab;touch-action:none;background-color:#e3e8ea;background-image:linear-gradient(#d6dde0 1px,transparent 1px),linear-gradient(90deg,#d6dde0 1px,transparent 1px);background-size:20px 20px}.canvas-wrap.panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.canvas-empty{min-height:430px;display:grid;place-content:center;justify-items:center;color:#7b888f;font-size:13px}.rail-icon{font-size:56px;line-height:.8;color:#91a3aa}.plan-surface{width:calc(100% * var(--zoom));min-width:800px;padding:22px}.plan-surface svg{display:block;width:100%;height:auto;min-height:390px;background:#fff;box-shadow:0 3px 14px #1827312e}.infrastructure-raster{pointer-events:none}.infrastructure line,.infrastructure polyline{stroke-linecap:round;stroke-linejoin:round;opacity:.98}.infrastructure text{font-family:Arial,sans-serif}.readable-infrastructure-labels{pointer-events:none}.readable-infrastructure-label{fill:#102631;stroke:#fffffff5;stroke-width:2;stroke-linejoin:round;paint-order:stroke fill;vector-effect:non-scaling-stroke;font-weight:700;letter-spacing:.005em}.match-target{pointer-events:none}.match-target circle:first-of-type{fill:#e43d36;stroke:#fff;stroke-width:.05}.match-target circle:last-of-type{fill:none;stroke:#e43d36;stroke-width:.06;opacity:.65}.match-marker.linked .match-target{display:none}.match-marker.s460 .match-label-leader{stroke:#8a6900}.match-marker.s460 .match-label-box{fill:#fff3a6!important;stroke:#725700;stroke-width:2}.match-marker.s460 .match-label{fill:#3f3100!important}.match-marker.s460 .match-target circle:first-of-type{fill:#f4c400}.match-marker.s460 .match-target circle:last-of-type{stroke:#8a6900}.match-marker.s460-pending .match-label-box{stroke:#6941c6;stroke-width:2.4}.s460-endpoint-badge{fill:#6941c6;stroke:#fff;stroke-width:1.2;pointer-events:none}.s460-endpoint-number{fill:#fff;font-family:Arial,sans-serif;font-weight:900;pointer-events:none}.match-label-leader{stroke:#ae7d00;stroke-width:1.15;opacity:.75;pointer-events:none}.match-label-card{cursor:move;pointer-events:all}.match-label-card.dragging{cursor:grabbing}.match-label-box{fill:var(--signal-label-fill, #ffd84a);stroke:#9b6b00;stroke-width:1.2;filter:drop-shadow(0 1px 1px rgba(0,0,0,.2));pointer-events:all}.match-label{fill:var(--signal-label-text, #2a240f);font-family:Consolas,Cascadia Mono,monospace;font-variant-numeric:slashed-zero;font-feature-settings:"zero" 1;font-weight:800;letter-spacing:.01em;pointer-events:none;-webkit-user-select:none;user-select:none}.match-strip{min-height:48px;padding:9px 14px;display:flex;gap:8px;overflow-x:auto;border-top:1px solid #d8e0e4}.match{flex:0 0 auto;padding:6px 9px;border-radius:6px;border-left:3px solid;background:#f3f5f6;font-size:11px}.match.found{border-color:#239271}.match.missing{border-color:#dc4c43}.signal-location-list{margin-top:10px;display:grid;gap:5px}.signal-location-list h3{margin:0 0 2px;color:#53646d;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.signal-location{display:grid;grid-template-columns:minmax(90px,1.4fr) minmax(62px,.8fr) minmax(76px,.8fr) minmax(45px,.55fr);align-items:center;gap:7px;padding:6px 8px;border:1px solid #dce4e7;border-radius:6px;background:#f7f9fa;color:#40515a;font-size:11px}.signal-location strong{color:#b62520}.match span{display:block;font-weight:800}.match small{color:#6c7981}.match.draggable-signal{cursor:grab;-webkit-user-select:none;user-select:none}.match.draggable-signal:hover{background:#e8f6f3}.match.draggable-signal.dragging{opacity:.45;cursor:grabbing}.plan-viewer-body{min-width:0;overflow:hidden;background:#dfe5e8}.plan-viewer-body #app{height:100vh;display:flex;flex-direction:column}.plan-window-header{min-height:68px;padding:10px 20px 10px 18px;color:#fff;background:linear-gradient(125deg,#0e2438,#17384b 70%,#205b63);display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 2px 12px #0917233d}.plan-window-header h1{font-size:21px}.plan-header-status{min-width:150px;display:grid;justify-items:end;gap:2px}.plan-header-status-label{color:#9ec2ca;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.plan-header-status strong{color:#edfafa;font-size:12px}.header-button{border-color:#ffffff52;color:#fff;background:#ffffff14}.header-button.active{border-color:#79e0d5;color:#eafffc;background:#1ebeaf40;box-shadow:inset 0 0 0 1px #79e0d566}.plan-editor-shell{flex:1;min-width:0;min-height:0;display:flex}.design-toolbar{position:relative;z-index:30;flex:0 0 62px;width:62px;min-height:0;padding:9px 8px;display:flex;flex-direction:column;align-items:center;gap:5px;color:#d8e8ec;background:linear-gradient(180deg,#102a3a,#132f40 72%,#102838);border-right:1px solid #294756;box-shadow:2px 0 10px #0917232e}.tool-button{position:relative;flex:0 0 auto;width:43px;height:43px;padding:9px;display:grid;place-items:center;border:1px solid transparent;border-radius:7px;color:#d7e6ea;background:transparent;transition:color .12s ease,background .12s ease,border-color .12s ease,transform .12s ease}.tool-button svg{width:24px;height:24px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.tool-button:hover:not(:disabled),.tool-button:focus-visible{color:#fff;border-color:#7ed2ca6b;background:#ffffff1a;outline:none;transform:translateY(-1px)}.tool-button[aria-expanded=true],.tool-button[aria-pressed=true],.tool-button.active{color:#dffffb;border-color:#62cfc4;background:#19ab9d47;box-shadow:inset 3px 0 #76e0d5}.tool-button-danger:not(:disabled){color:#ffaaa4}.tool-button-danger:hover:not(:disabled){color:#ffd0cc;border-color:#ff746a94;background:#c5352b33}.tool-button:disabled{opacity:.3}.tool-button:after{content:attr(data-tooltip);position:absolute;z-index:80;left:calc(100% + 11px);top:50%;padding:7px 9px;border:1px solid #b9c9cf;border-radius:5px;color:#f5fbfc;background:#172f3d;box-shadow:0 5px 18px #0718224d;font-size:10px;font-weight:700;line-height:1;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-4px,-50%);transition:opacity .12s ease,transform .12s ease,visibility .12s ease}.tool-button:hover:after,.tool-button:focus-visible:after{opacity:1;visibility:visible;transform:translateY(-50%)}.toolbar-separator{flex:0 0 1px;width:32px;margin:3px 0;background:#c7e0e533}.toolbar-spacer{flex:1 1 auto;min-height:4px}.toolbar-zoom-label{width:46px;color:#b9d4da;font-size:9px;font-weight:750;text-align:center}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(max-height:820px){.design-toolbar{padding-top:6px;padding-bottom:6px;gap:3px}.tool-button{width:38px;height:38px;padding:8px}.tool-button svg{width:21px;height:21px}.toolbar-separator{margin:1px 0}}.plan-viewer-main{flex:1;min-width:0;min-height:0;padding:12px;display:flex}.plan-window-workspace{position:relative;flex:1;min-width:0;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto minmax(0,1fr) auto}.plan-window-workspace>.warnings{grid-column:1;grid-row:1}.plan-window-workspace>.selection-help{grid-column:1;grid-row:2}.plan-window-workspace>.plan-window-canvas{grid-column:1;grid-row:3}.plan-window-workspace>.match-strip{grid-column:1;grid-row:4}.selection-help{padding:7px 16px;border-bottom:1px solid #d6e0e4;color:#49636d;background:#edf7f5;font-size:11px}.selection-help.error{color:#96362f;background:#ffedeb}.plan-window-canvas{flex:1;min-height:0;max-height:none}.plan-window-canvas .canvas-empty{height:100%;min-height:0}.track-hit-area{fill:none;stroke:transparent;stroke-width:12;pointer-events:stroke;cursor:crosshair}.canvas-wrap.panning .track-hit-area{cursor:grabbing}.canvas-wrap.placing-shape,.canvas-wrap.placing-shape .track-hit-area{cursor:copy}.canvas-wrap.signal-drop-active{outline:3px solid rgba(19,124,118,.55);outline-offset:-3px;cursor:copy}.canvas-wrap.selecting-boundary-signals{cursor:default}.boundary-candidate-layer{pointer-events:none}.boundary-candidate{pointer-events:all;cursor:pointer}.boundary-candidate rect{fill:#33beb817;stroke:#149991;stroke-width:1.7;stroke-dasharray:4 2}.boundary-candidate circle{fill:#149991;stroke:#fff;stroke-width:1.2}.boundary-candidate text{fill:#fff;font-family:Arial,sans-serif;font-weight:900;pointer-events:none;-webkit-user-select:none;user-select:none}.boundary-candidate:hover rect{fill:#33beb83d;stroke-width:2.4}.boundary-candidate.selected rect{fill:#ffc42c29;stroke:#d28a00;stroke-dasharray:none}.boundary-candidate.selected circle{fill:#d28a00}.boundary-candidate.selected .boundary-rename-button{fill:#247a9a}.boundary-candidate .boundary-rename-button:hover{fill:#135c78}.selectable-track:hover .track-visible{stroke:#df6a24!important}.selection-layer{pointer-events:none}.selection-layer line,.selection-layer polyline{fill:none;stroke:#e02f2f;stroke-width:2.475px;stroke-linecap:round;stroke-linejoin:round;opacity:.94}.selection-layer .normal-selection,.selection-layer .s460-selection{stroke-width:var(--route-line-width, 2.475px)!important}.selection-layer .s460-selection{stroke:#f4c400}.selection-layer .switch-connection-candidate{stroke:#168fc4;stroke-width:3;stroke-dasharray:7 3;opacity:1}.shape-palette,.track-palette,.zone-palette,.file-palette,.pdf-palette,.signal-label-palette{position:relative;z-index:2;grid-column:2;grid-row:1 / -1;align-self:stretch;width:clamp(320px,32vw,470px);min-height:0;max-height:none;overflow-x:hidden;overflow-y:auto;border:0;border-left:1px solid #b9c8ce;border-radius:0;background:#f8fafb;box-shadow:-4px 0 14px #0c212e14}.shape-palette-header{min-height:58px;padding:11px 12px 10px 14px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;color:#fff;background:#17384b}.shape-palette-header strong,.shape-palette-header small{display:block}.shape-palette-header small{margin-top:3px;color:#c9dfe5;font-size:10px}.shape-palette-header button{padding:2px 8px;border-color:#ffffff4d;color:#fff;background:#ffffff14;font-size:18px}.shape-size-control{padding:11px 14px 12px;border-bottom:1px solid #d4dde1;background:#edf7f5}.shape-size-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#263c48;font-size:12px;font-weight:700}.shape-size-heading output{min-width:76px;color:#087c74;font-size:26px;line-height:1;text-align:right}.shape-size-inputs{margin-top:9px;display:grid;grid-template-columns:minmax(120px,1fr) 66px auto;align-items:center;gap:7px}.shape-size-inputs input[type=range]{width:100%;accent-color:#087c74}.shape-size-inputs input[type=number]{width:66px;padding:6px;border:1px solid #aebec5;border-radius:5px;background:#fff;text-align:right}.shape-size-inputs span{color:#536873;font-weight:700}.shape-size-control small{display:block;margin-top:6px;color:#61747d;font-size:9px;line-height:1.35}.shape-text-editor{padding:11px 14px 12px;border-bottom:1px solid #d4dde1;background:#fff9dc}.shape-text-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#3c454a;font-size:11px}.shape-text-editor-heading button{padding:4px 8px;color:#485b64;background:#fff;font-size:9px}.shape-text-fields{margin-top:8px;display:grid;gap:7px}.shape-text-fields label{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:8px;color:#5b686e;font-size:9px}.shape-text-fields input{min-width:0;width:100%;padding:7px 8px;border:1px solid #bdad61;border-radius:5px;background:#fff;color:#26343b}.shape-text-toolbar{margin-top:9px;display:flex;flex-wrap:wrap;align-items:center;gap:5px}.shape-text-toolbar button,.shape-text-toolbar select{min-height:30px;padding:5px 8px;background:#fff;font-size:10px}.shape-text-toolbar button.active{border-color:#087c74;color:#087c74;background:#dff4f0;box-shadow:inset 0 0 0 1px #087c74}.shape-alignment-field{display:inline-flex;align-items:center;gap:3px;color:#53636b;font-size:9px}.shape-alignment-field select{max-width:72px}.shape-text-size{display:inline-flex;align-items:center;gap:4px;color:#53636b;font-size:9px}.shape-text-size input{width:58px;padding:6px;border:1px solid #bdad61;border-radius:5px;background:#fff;text-align:right}.shape-color-editor{padding:10px 14px 11px;border-bottom:1px solid #d4dde1;background:#f2f6f7;color:#3c4d55;font-size:10px}.shape-color-fields{margin-top:7px;display:flex;align-items:center;gap:8px}.shape-color-field{display:inline-flex;align-items:center;gap:6px;color:#596b74;font-size:9px}.shape-color-field input[type=color]{width:38px;height:29px;padding:2px;border:1px solid #aebec5;border-radius:5px;background:#fff;cursor:pointer}.shape-color-field.compact span{display:none}.shape-color-editor button{margin-left:auto;padding:6px 9px;background:#fff;font-size:9px}.shape-color-editor small{display:block;margin-top:6px;color:#718089;font-size:8px}.shape-list{max-height:min(650px,calc(100vh - 330px));padding:10px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.shape-text-editor:not([hidden])~.shape-list,.shape-color-editor:not([hidden])~.shape-list{max-height:min(420px,calc(100vh - 560px))}.shape-option{min-width:0;min-height:148px;padding:8px;display:flex;flex-direction:column;align-items:stretch;gap:6px;color:#2c3e48;background:#fff;font-size:10px;line-height:1.2}.shape-option.active{border-color:#087c74;outline:2px solid rgba(14,139,129,.25);background:#e9f7f4}.shape-preview{height:112px;padding:7px;display:grid;place-items:center;overflow:hidden;border-radius:4px;background:#eef2f3}.shape-preview>svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%;overflow:hidden}.shape-measurement-host{position:fixed;left:-100000px;top:0;width:480px;visibility:hidden;pointer-events:none}.shape-measurement-host .shape-option{display:block;width:440px;height:180px}.shape-measurement-host svg{display:block;width:100%;height:100%}.shape-option>span:last-child{min-height:24px;overflow-wrap:anywhere}.shape-palette-help,.shape-loading{margin:0;padding:9px 12px;border-top:1px solid #d4dde1;color:#63737d;background:#fff;font-size:10px}.shape-palette-help.error{color:#9d312a;background:#ffedeb}.file-palette-section{padding:14px;border-bottom:1px solid #d8e1e4;background:#fff}.file-palette-section>strong,.file-palette-section>small{display:block}.file-palette-section>strong{color:#263c48;font-size:12px}.file-palette-section>small{margin-top:4px;color:#677781;font-size:10px;line-height:1.4}.file-palette-buttons{display:flex;gap:8px;margin-top:11px}.file-palette-buttons button{flex:1}.pdf-palette{width:clamp(340px,38vw,520px)}.pdf-palette-content{overflow:visible;background:#f5f8f9}.pdf-editor-section{padding:12px 14px;border-bottom:1px solid #d7e0e4;background:#fff}.pdf-editor-section>strong{display:block;margin-bottom:9px;color:#263c48;font-size:12px}.pdf-field-grid{display:grid;gap:8px}.pdf-field-grid.two-columns{grid-template-columns:1fr 1fr}.pdf-field-grid label,.pdf-wide-field{min-width:0;display:grid;gap:4px;color:#586a73;font-size:9px;font-weight:750}.pdf-wide-field{margin-top:8px}.pdf-field-grid input,.pdf-wide-field input,.pdf-wide-field textarea{min-width:0;width:100%;padding:7px 8px;border:1px solid #b7c5cc;border-radius:6px;color:#26343b;background:#fff;font-size:10px;font-weight:500}.pdf-wide-field textarea{resize:vertical;line-height:1.35}.pdf-format-help{display:block;margin-top:5px;color:#74828a;font-size:8px;line-height:1.35}.pdf-group-actions{margin-top:9px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.pdf-group-actions button{min-width:0;padding:6px 7px;background:#fff;font-size:9px}.pdf-area-control{margin-top:9px;padding:9px;display:grid;gap:8px;border:1px solid #c9d8dc;border-radius:7px;background:#edf7f5}.pdf-area-control strong,.pdf-area-control small{display:block}.pdf-area-control strong{color:#29434d;font-size:10px}.pdf-area-control small{margin-top:2px;color:#5f737c;font-size:8.5px;line-height:1.35}.pdf-area-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.pdf-area-actions button{min-width:0;padding:6px 7px;background:#fff;font-size:9px}.pdf-legend-heading{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#586a73;font-size:9px;font-weight:750}.pdf-legend-heading button{padding:4px 7px;background:#fff;font-size:8px}.pdf-legend-field{margin-top:4px}.pdf-primary-action{width:100%;margin-top:10px;border-color:#126d69;color:#fff;background:#137c76}.pdf-cancel-edit{width:100%;margin-top:6px;border-color:#c5d1d6;color:#52656e;background:#fff}.pdf-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.pdf-section-heading strong{color:#263c48;font-size:12px}.pdf-section-heading span{padding:3px 7px;border-radius:999px;color:#087c74;background:#def1ee;font-size:9px;font-weight:800}.pdf-sketch-list{margin-top:9px;display:grid;gap:6px}.pdf-sketch-list>p{margin:4px 0;color:#718089;font-size:10px}.pdf-sketch-item{padding:7px 8px;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid #d1dce0;border-radius:6px;background:#f8fafb}.pdf-sketch-thumb{display:block;width:58px;height:38px;object-fit:contain;border:1px solid #d4dde1;border-radius:3px;background:#fff}.pdf-sketch-item strong,.pdf-sketch-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-sketch-item strong{color:#2d424c;font-size:10px}.pdf-sketch-item small{margin-top:2px;color:#75848c;font-size:8px}.pdf-sketch-actions{display:flex;gap:3px}.pdf-sketch-actions button{min-width:28px;padding:4px 6px;background:#fff}.shape-loading.error{color:#9d312a}.placed-shape{cursor:move}.placed-shape-outline{fill:transparent;stroke:transparent;stroke-width:1.5;pointer-events:all}.placed-shape.selected .placed-shape-outline{stroke:#0a8880;stroke-dasharray:4 3}.placed-shape-rotation-stem{stroke:#0a8880;stroke-width:1.5;pointer-events:none}.placed-shape-rotation-handle{fill:#ffd84a;stroke:#087c74;stroke-width:2;cursor:grab;pointer-events:all}.placed-shape-rotation-handle:active{cursor:grabbing}.placed-shape-resize-stem{stroke:#0a8880;stroke-width:1.5;pointer-events:none}.placed-shape-resize-handle{fill:#ffd84a;stroke:#087c74;stroke-width:2.25;cursor:nwse-resize;pointer-events:all}.placed-shape-resize-handle:active{fill:#ffca28}.safety-material-candidate{cursor:pointer}.safety-material-candidate.rejected{opacity:.42}.safety-material-hit-area{fill:transparent;stroke:none;pointer-events:all}.track-style-list{padding:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.track-style-option{min-height:64px;display:grid;place-items:center;gap:6px;background:#fff}.track-style-option.active{border-color:#087c74;outline:2px solid rgba(14,139,129,.25);background:#e9f7f4}.track-color-actions{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:end;gap:8px}.track-color-actions label{display:grid;gap:3px;color:#5b6c75;font-size:8px;font-weight:750}.track-color-actions input[type=color]{width:100%;height:31px;padding:2px;border:1px solid #aebec5;border-radius:5px;background:#fff;cursor:pointer}.track-color-actions button{min-width:0;min-height:31px;padding:6px 8px;background:#fff;font-size:9px}.red-route-scale-editor{margin:0 12px 10px;padding:10px;display:grid;gap:7px;border:1px solid #e7b8b8;border-radius:7px;background:#fff5f5}.red-route-scale-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#8f2929;font-size:10px;font-weight:800}.red-route-scale-heading output{min-width:38px;text-align:right;color:#c22f2f}.red-route-scale-editor input[type=range]{width:100%;accent-color:#e02f2f}.red-route-scale-editor small{color:#805d5d;font-size:8.5px}.s460-editor{margin:0 12px 10px;padding:10px;display:grid;gap:9px;border:1px solid #83c9e8;border-radius:7px;background:#e9f7fd}.s460-editor strong,.s460-editor small{display:block}.s460-editor strong{color:#075f94;font-size:10px}.s460-editor small{margin-top:3px;color:#4f7284;font-size:8.5px;line-height:1.35}.intrusion-zone-list{display:grid;gap:5px}.intrusion-zone-row{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:4px}.intrusion-zone-option{width:100%;min-width:0;padding:7px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;background:#ffffffc7}.intrusion-zone-option span{min-width:0}.intrusion-zone-option strong,.intrusion-zone-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.intrusion-zone-option strong{color:#294f62}.intrusion-zone-option small{margin-top:2px;color:#607d8b}.intrusion-zone-option em{flex:0 0 auto;color:#607d8b;font-size:8px;font-style:normal;font-weight:800;text-transform:uppercase}.intrusion-zone-option.active{border-color:#6941c6;background:#eee8ff;box-shadow:inset 3px 0 #6941c6}.intrusion-zone-option.marked{border-color:#b59b18;background:#fff7bd}.intrusion-zone-option.marked em{color:#725700}.intrusion-zone-remove{min-width:30px;padding:4px;border-color:#e0b7b3;color:#9d312a;background:#fff;font-size:16px}.s460-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px}.s460-actions button{min-width:0;min-height:34px;padding:6px 7px;background:#fff;color:#075f94;font-size:8.5px}.s460-actions button:first-child{grid-column:1 / -1}.s460-actions button:first-child:not(:disabled){border-color:#168bd0;background:#d5f1fc}.s460-actions button.active{border-color:#6941c6;color:#4d2b9f;background:#eee8ff;box-shadow:inset 0 0 0 1px #6941c6}.s460-color-field{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;border:1px solid #c6dce5;border-radius:5px;color:#294f62;background:#ffffffb8;font-size:9px;font-weight:800}.s460-color-field input{width:66px;height:28px;padding:2px}.s460-endpoint-status{min-height:24px;padding:6px 7px;border-radius:5px;color:#294f62!important;background:#ffffffb8;font-weight:750}.track-sample{display:block;width:76px;height:3px;background:#17232b}.track-sample.dashed{background:repeating-linear-gradient(90deg,#17232b 0 11px,transparent 11px 18px)}.track-sample.dotted{background:repeating-linear-gradient(90deg,#17232b 0 3px,transparent 3px 9px)}.track-snap-option{margin:0 12px 4px;padding:9px 10px;display:flex;align-items:center;gap:8px;border:1px solid #d5dfe3;border-radius:7px;color:#314852;background:#fff;font-size:11px;font-weight:700;cursor:pointer}.track-snap-option input{width:15px;height:15px;accent-color:#087c74}.track-snap-hint{margin:0 14px 10px;color:#6b7b84;font-size:10px}.new-track-chain{margin:0 12px 8px;width:calc(100% - 24px)}.stop-track-drawing{margin:0 12px 12px;width:calc(100% - 24px)}.manual-cut-tools{margin:0 12px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.manual-cut-tools button{min-height:36px;background:#fff}.manual-cut-tools #manual-track-cut.active{border-color:#dd8b00;color:#8c5200;background:#fff2c9;box-shadow:inset 0 0 0 1px #dd8b00}.signal-label-editor{padding:15px;background:#fff}.signal-label-editor p{margin:0 0 13px;color:#5d7079;font-size:10px;line-height:1.45}.signal-label-color-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.signal-label-color-fields label{display:grid;gap:5px;color:#52656e;font-size:9px;font-weight:750}.signal-label-color-fields input[type=color]{width:100%;height:38px;padding:3px;border:1px solid #aebec5;border-radius:6px;background:#fff;cursor:pointer}.signal-label-editor>button{width:100%;margin-top:12px;background:#f6f8f9}.canvas-wrap.manual-cut-mode,.canvas-wrap.manual-cut-mode .track-hit-area{cursor:crosshair}.manual-cut-layer{pointer-events:none}.manual-cut-marker circle{fill:#fff4c4;stroke:#d87900;stroke-width:1.5}.manual-cut-marker line{stroke:#c34820;stroke-width:1.7;stroke-linecap:round}.zone-editor{padding:13px 14px;border-bottom:1px solid #d6e0e4;background:#f5f8f9}.zone-editor>label{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:8px;color:#52646e;font-size:10px;font-weight:700}.zone-editor textarea{min-width:0;width:100%;padding:7px 8px;resize:vertical;border:1px solid #b7c5cc;border-radius:6px;background:#fff;font:inherit;font-weight:500;line-height:1.35}.zone-style-fields{margin-top:10px;display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px}.zone-style-fields label{display:flex;align-items:center;gap:7px;color:#52646e;font-size:10px;font-weight:700}.zone-style-fields input[type=color]{width:42px;height:30px;padding:2px;border:1px solid #aebec5;border-radius:5px;background:#fff}.zone-opacity-field input{min-width:90px;flex:1;accent-color:#087c74}.zone-opacity-field output{min-width:34px;color:#087c74;text-align:right}.zone-editor>.zone-text-size-field{margin-top:10px;grid-template-columns:58px minmax(0,1fr) 42px}.zone-text-size-field input{min-width:100px;width:100%;accent-color:#087c74}.zone-text-size-field output{min-width:42px;color:#087c74;text-align:right}.zone-actions{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.zone-actions button{background:#fff}.zone-actions #start-zone-drawing,.zone-actions #finish-zone-drawing{border-color:#167f79}.zone-list{max-height:min(360px,calc(100vh - 350px));padding:9px;overflow:auto;display:grid;gap:6px;background:#fff}.zone-list>p{margin:3px;color:#708089;font-size:10px}.zone-list-item{width:100%;padding:8px 9px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;text-align:left;background:#f8fafb}.zone-list-item.active{border-color:#087c74;outline:2px solid rgba(14,139,129,.22);background:#e9f7f4}.zone-list-item>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zone-list-item small{color:#75848c;font-size:8px}.zone-swatch{width:16px;height:16px;border:1px solid rgba(0,0,0,.32);border-radius:3px}.canvas-wrap.track-drawing-active,.canvas-wrap.track-drawing-active .track-hit-area,.canvas-wrap.drawing-zone,.canvas-wrap.drawing-zone .track-hit-area{cursor:crosshair}.zone-fill-layer{pointer-events:none}.zone-layer{pointer-events:all}.work-zone-area,.work-zone-preview{pointer-events:none}.work-zone-area{stroke-width:2.25;stroke-linejoin:round}.work-zone.selected .work-zone-area{stroke-width:3.25;stroke-dasharray:8 4}.work-zone-label{cursor:move;pointer-events:all}.work-zone-label.dragging{cursor:grabbing}.work-zone-label rect{stroke:#00000094;stroke-width:1.1;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18));pointer-events:all}.work-zone-label text{font-family:Arial,sans-serif;font-weight:800;pointer-events:none}.work-zone-vertex{fill:#ffd84a;stroke:#087c74;stroke-width:1.7;cursor:move;pointer-events:all}.work-zone-preview polyline{stroke-width:2.5;stroke-dasharray:7 4;stroke-linejoin:round}.work-zone-closing-guide{stroke:#e28a18;stroke-width:2;stroke-dasharray:3 3;opacity:.95}.work-zone-closing-guide.aligned{stroke:#16875f;stroke-width:2.6}.work-zone-draft-vertex{fill:#fff;stroke:#087c74;stroke-width:1.6}.work-zone-draft-vertex.first{fill:#ffd84a;stroke-width:2.2}.canvas-wrap.selecting-map-part,.canvas-wrap.selecting-map-part .track-hit-area{cursor:crosshair}.canvas-wrap.placing-map-part,.canvas-wrap.placing-map-part .track-hit-area{cursor:copy}.reusable-part-preview{pointer-events:none}.reusable-part-preview.selection{fill:#087c741a;stroke:#087c74;stroke-width:2;stroke-dasharray:7 4}.reusable-part-outline{fill:#087c7409;stroke:#087c74;stroke-width:1.5;stroke-dasharray:7 4;opacity:.6}.reusable-part-ghost-track{fill:none;stroke:#087c74;stroke-width:3;stroke-linecap:round;opacity:.9}.reusable-part-ghost-track.dashed{stroke-dasharray:7 5}.reusable-part-ghost-track.dotted{stroke-dasharray:1 4}.reusable-part-ghost-shape{opacity:.72}.reusable-part-ghost-shape-fallback{fill:#087c741f;stroke:#087c74;stroke-width:2;stroke-dasharray:4 3}.reusable-part-anchor-cross{stroke:#e25922;stroke-width:1.5;opacity:.9}.reusable-part-anchor{fill:#fff;stroke:#e25922;stroke-width:2}.canvas-wrap.selecting-pdf-area,.canvas-wrap.selecting-pdf-area .track-hit-area{cursor:crosshair}.pdf-area-preview rect{fill:#ffc42c1a;stroke:#db8c00;stroke-width:2.2;stroke-dasharray:8 4}.pdf-area-preview text{fill:#8a5800;font-family:Arial,sans-serif;font-weight:900;paint-order:stroke;stroke:#fff;stroke-width:2.5px;stroke-linejoin:round}.pdf-area-preview-item.draft rect{fill:#087c7414;stroke:#087c74}.pdf-area-preview-item.draft text{fill:#087c74}.track-edit-preview{stroke:#087c74;stroke-width:3;stroke-linecap:round;pointer-events:none}.track-edit-preview.dashed{stroke-dasharray:7 5}.track-edit-preview.dotted{stroke-dasharray:1 4}.manual-track-handle{fill:transparent;stroke:transparent;cursor:move;pointer-events:all}.manual-track-handle-dot{fill:#ffffffe6;stroke:#087c74;stroke-width:1;opacity:.82;pointer-events:none}.manual-track-controls.selected .manual-track-handle-dot{fill:#70d1c9}.canvas-wrap.moving-manual-track{cursor:move;-webkit-user-select:none;user-select:none}.armed-track-start{fill:#087c7424;stroke:#087c74;stroke-width:2;pointer-events:none}.signal-snap-preview{fill:#137c7638;stroke:#087c74;stroke-width:3;pointer-events:none}.signal-drag-ghost{position:fixed;z-index:1000;pointer-events:none;padding:7px 10px;border-radius:6px;color:#fff;background:#a52620;box-shadow:0 5px 15px #00000040;font-size:12px;font-weight:800}@media(max-width:1180px){.workflow{grid-template-columns:1fr 1fr}#result-step{grid-column:span 2}}.viewer-body{min-width:0;overflow:hidden;background:#dfe5e8}.viewer-body #app{height:100vh;display:flex;flex-direction:column}.viewer-header{min-height:76px;padding:14px 22px;color:#fff;background:linear-gradient(125deg,#0e2438,#17384b 70%,#205b63);display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 12px #0917233d}.viewer-header h1{font-size:21px}.viewer-zoom-controls{display:flex;align-items:center;gap:6px}.viewer-zoom-controls button{border-color:#ffffff52;color:#fff;background:#ffffff14}.viewer-zoom-controls span{min-width:48px;text-align:center;color:#d8eeee;font-size:11px}.upm-viewer{flex:1;min-height:0;padding:14px;display:grid;grid-template-columns:minmax(420px,1.35fr) minmax(330px,.9fr);gap:14px}.viewer-image-pane,.viewer-text-pane{min-height:0;overflow:hidden;border:1px solid #c7d1d6;border-radius:10px;background:#fff;box-shadow:0 4px 15px #11273614}.viewer-image-pane{background:#cbd2d5}.viewer-image-stage{width:100%;height:100%;padding:18px;overflow:auto;display:grid;place-items:start center;cursor:grab;touch-action:none;background-image:linear-gradient(45deg,#c5cccf 25%,transparent 25%),linear-gradient(-45deg,#c5cccf 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#c5cccf 75%),linear-gradient(-45deg,transparent 75%,#c5cccf 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0}.viewer-image-stage.panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.viewer-image{display:block;max-width:none;height:auto;object-fit:contain;background:#fff;box-shadow:0 3px 18px #0000003d;image-rendering:auto}.viewer-image.fit{width:auto!important;max-width:100%;max-height:none}.viewer-empty{align-self:center;justify-self:center;padding:18px;border-radius:8px;color:#61717a;background:#ffffffb8;font-size:13px}.viewer-text-pane{padding:16px;display:flex;flex-direction:column}.viewer-text-pane>label{margin:14px 0 6px;color:#52626d;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.viewer-text-pane textarea{flex:1;min-height:260px;margin:0;resize:none;font-size:12px;line-height:1.45;background:#f5f7f8}.viewer-summary dl{display:grid;grid-template-columns:.7fr .7fr 1.4fr;gap:7px;margin:0 0 10px}.viewer-summary dl div{min-width:0;padding:8px;border-radius:6px;background:#edf2f3}.viewer-summary dt{color:#72808a;font-size:9px;font-weight:800;text-transform:uppercase}.viewer-summary dd{margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:750}.viewer-references{display:flex;flex-wrap:wrap;gap:5px;max-height:108px;overflow:auto}.viewer-reference{padding:5px 7px;border-radius:5px;color:#2c4650;background:#e5ecef;font-size:11px;font-weight:800}.viewer-reference.signal{color:#9e3028;background:#ffe6e3}.viewer-reference.switch{color:#715911;background:#fff3ce}.viewer-reference small{display:block;margin-top:1px;opacity:.65;font-size:8px;text-transform:uppercase}.viewer-waiting{padding:12px;border-radius:7px;color:#6d7a82;background:#edf1f3;font-size:12px}.viewer-waiting.error{color:#96362f;background:#ffedeb}.viewer-help{margin:8px 0 0;color:#72808a;font-size:10px}@media(max-width:850px){.upm-viewer{grid-template-columns:1fr;overflow:auto}.viewer-image-pane,.viewer-text-pane{min-height:55vh}}
