@font-face{font-family:system;src:local("Segoe UI")}*{box-sizing:border-box}body{margin:0;color:#183048;background:#eef2f6;font-family:system,-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;font-size:16px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button{border:1px solid #ccd6e0;background:#fff;color:#203a52;border-radius:7px;padding:10px 13px;min-height:42px;font-weight:600;display:inline-flex;gap:7px;align-items:center;justify-content:center}button:hover:not(:disabled){border-color:#4679a4;background:#f0f7fd}button.primary{background:#156bb2;border-color:#156bb2;color:white}button.primary:hover{background:#10558e}button.dark{background:#1e3954;color:#fff;border-color:#1e3954}button.ghost{background:transparent;border-color:transparent}button.danger{color:#b54434}input,select,textarea{border:1px solid #cbd5df;border-radius:6px;background:white;color:#193249;padding:10px;min-height:43px;max-width:100%}textarea{resize:vertical;min-height:85px}input[type=checkbox]{min-height:20px;width:20px}a{color:#126cb6;text-decoration:none}a:hover{text-decoration:underline}svg.icon{height:20px;width:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.layout{display:grid;grid-template-columns:208px minmax(0,1fr);height:100dvh;overflow:hidden}.sidebar{background:#142b43;color:#b9c9d9;display:flex;flex-direction:column;padding:26px 14px 18px;z-index:5}.brand{font-size:25px;font-weight:750;color:white;display:flex;gap:10px;align-items:center;padding:0 10px 30px;letter-spacing:-.6px}.brand img{width:32px}.nav{display:flex;flex-direction:column;gap:6px}.nav button{justify-content:flex-start;color:#b9c9d9;border:0;background:transparent;padding:13px 15px;font-weight:500;min-height:48px}.nav button.active{color:#fff;background:#285072}.nav button:hover{color:#fff;background:#213f5b}.nav small{margin-left:auto;background:#3b6284;color:#fff;border-radius:4px;padding:1px 6px}.sidefoot{margin-top:auto;padding:20px 12px 0;border-top:1px solid #334b61;font-size:13px;line-height:1.7}.sidefoot strong{display:block;color:#e6eef6;font-size:14px}.main{min-width:0;display:flex;flex-direction:column;overflow:hidden}.topbar{height:73px;flex-shrink:0;background:#fff;border-bottom:1px solid #d9e1e9;display:flex;align-items:center;justify-content:space-between;padding:0 24px;gap:16px}.projectpick{border:0;background:#fff;font-size:16px;font-weight:650;max-width:370px;padding-left:0}.topright{display:flex;align-items:center;gap:12px}.connection{font-size:13px;white-space:nowrap;display:flex;align-items:center;gap:6px}.connection:before{content:"";width:7px;height:7px;border-radius:50%;background:#299271}.connection.offline:before{background:#d58b2f}.avatar{width:32px;height:32px;border-radius:50%;background:#e5eff8;color:#245b88;display:grid;place-items:center;font-weight:700}.account{font-size:14px;display:flex;align-items:center;gap:8px}.pagehead{padding:21px 25px 17px;display:flex;align-items:center;justify-content:space-between;gap:15px}.pagehead h1{font-size:23px;line-height:1.3;margin:0;font-weight:740;letter-spacing:-.7px}.eyebrow{font-size:12px;font-weight:650;color:#63798e;letter-spacing:1.4px;margin-bottom:5px}.headbuttons{display:flex;gap:8px;align-items:center}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 316px;min-height:0;flex:1;margin:0 20px 18px;border:1px solid #d3dce6;border-radius:9px;overflow:hidden;background:white;box-shadow:0 2px 5px #18304808}.drawingarea{display:flex;flex-direction:column;min-width:0;min-height:0}.drawtop{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-bottom:1px solid #dde5ed;gap:8px;flex-wrap:wrap}.drawtop select{font-weight:650;min-width:210px;border:0;padding:6px;max-width:50%}.meta{color:#6b7e90;font-size:13px}.toolbar{padding:9px 12px;display:flex;gap:5px;border-bottom:1px solid #dde5ed;align-items:center;background:#fbfcfd;flex-wrap:wrap}.toolbar button{padding:8px 10px;min-height:39px;font-size:14px}.toolbar button.on{background:#e4f1ff;color:#1065ac;border-color:#9dc8ee}.divider{height:22px;width:1px;background:#d5dfe8;margin:0 5px}.toolbar .spacer{flex:1}.viewport{position:relative;overflow:auto;flex:1;min-height:200px;background:#dfe6ed;touch-action:pan-x pan-y}.sheet{position:relative;background:#fff;margin:28px auto;box-shadow:0 3px 20px #1b324827;transform-origin:0 0;line-height:0}.sheet canvas{display:block;width:100%;height:100%}.sheet svg.routes{position:absolute;inset:0;width:100%;height:100%;overflow:visible;touch-action:none}.path-hit{fill:none;stroke:transparent;stroke-width:18;pointer-events:stroke;vector-effect:non-scaling-stroke;cursor:pointer}.route-line{fill:none;stroke:#2b86c1;stroke-width:1.7;vector-effect:non-scaling-stroke;pointer-events:none;opacity:.72}.route-line.selected{stroke:#ec842d;stroke-width:4;opacity:1}.route-line.draft{stroke:#0f85dd;stroke-width:3;opacity:1}.route-line.field{stroke:#9299a7;stroke-width:2;stroke-dasharray:6 4}.vertex{fill:#fff;stroke:#0874c5;stroke-width:2;vector-effect:non-scaling-stroke;cursor:move}.drawfoot{min-height:42px;border-top:1px solid #d8e1e8;padding:9px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:#63798c}.drawfoot strong{color:#1e5881}.rightpanel{border-left:1px solid #d7e0e8;overflow-y:auto;min-height:0;background:#fff}.panelhead{padding:20px 19px 13px;border-bottom:1px solid #e0e6ed}.panelhead h2{font-size:20px;margin:5px 0;letter-spacing:-.4px}.panelhead .sub{color:#708194;font-size:13px}.panelbody{padding:16px 19px}.pill{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:5px;font-size:12px;line-height:1.3;background:#edf2f6;color:#586d80;white-space:nowrap}.pill.blue{background:#e8f2fe;color:#1e6dab}.pill.orange{background:#fff1df;color:#aa631e}.pill.green{background:#e5f3ee;color:#287858}.pill.red{background:#fbece8;color:#ae4737}.sectionlabel{font-size:12px;letter-spacing:.7px;color:#738597;font-weight:650;margin:18px 0 10px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:13px}.field label{font-size:13px;font-weight:600;color:#556b7e}.field input,.field select,.field textarea{width:100%;font-size:14px}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.metricbox{padding:15px;background:#f3f7fb;border:1px solid #e0e9f0;border-radius:7px;margin:0 0 16px}.metricbox .number{font-size:29px;font-weight:740;letter-spacing:-1px;color:#164d78}.metricbox .unit{font-size:14px;font-weight:500;letter-spacing:0;color:#60788d;margin-left:4px}.metricbox .caption{font-size:12px;color:#6a7f91;margin-top:3px}.detailrows{display:grid;grid-template-columns:76px 1fr;gap:10px;font-size:14px;line-height:1.5}.detailrows dt{color:#748699}.detailrows dd{margin:0;overflow-wrap:anywhere}.approvals{display:grid;gap:8px;margin:14px 0}.approval{padding:10px;border:1px solid #dce5ed;border-radius:7px;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:8px}.approval b{display:block;font-size:14px}.approval small{color:#7c8b99;font-size:12px}.approval button{padding:7px 10px;font-size:13px;min-height:34px}.full{width:100%}.stack{display:flex;flex-direction:column;gap:8px}.muted{color:#748699;font-size:13px;line-height:1.6}.notice{padding:12px 14px;background:#fff6e8;color:#8c6024;border:1px solid #eeddbf;border-radius:7px;font-size:13px;line-height:1.6;margin:10px 0}.notice.info{background:#edf5fd;color:#3d6889;border-color:#cfdfed}.photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.photocard{position:relative;min-width:0}.photocard img{width:100%;height:98px;object-fit:cover;border:1px solid #dbe3eb;border-radius:6px;cursor:pointer;background:#eaf0f5}.photocard small{display:block;font-size:12px;color:#77889a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photocard button{position:absolute;right:4px;top:4px;background:white;padding:0;width:26px;min-height:26px}.uploadzone{border:1px dashed #a9bccd;background:#f8fbfd;padding:17px 8px;width:100%;font-size:13px;margin-top:8px}.hintbox{padding:26px 21px;line-height:1.7;color:#728598;font-size:14px}.hintbox svg{width:38px;height:38px;color:#3f86b8;margin-bottom:10px}.hintbox h3{margin:0 0 9px;color:#203c53;font-size:17px}.legend{display:flex;gap:14px;font-size:12px;align-items:center}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:16px;height:2px;background:#2b86c1}.legend i.orange{background:#ec842d}.list-content{flex:1;overflow:auto;padding:0 25px 25px}.filterbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.filterbar input{width:300px}.statrow{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:19px}.stat{background:white;border:1px solid #dbe3ec;border-radius:8px;padding:17px 19px}.stat span{font-size:13px;color:#71869a}.stat strong{font-size:27px;display:block;margin-top:5px;color:#204765}.tablewrap{border:1px solid #d4dee8;border-radius:8px;background:white;overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px;white-space:nowrap}th{text-align:left;padding:13px 16px;background:#f5f8fb;color:#647c90;font-size:12px;font-weight:650;border-bottom:1px solid #d9e3eb}td{padding:14px 16px;border-bottom:1px solid #e5ebf1}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f5faff;cursor:pointer}td.primarycell{font-weight:700;color:#1d5f91}td small{display:block;font-weight:400;color:#8091a1;font-size:12px;margin-top:3px}.empty{padding:60px 30px;text-align:center;color:#8293a2}.empty b{display:block;color:#36556e;font-size:19px;margin-bottom:8px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.card{background:white;border:1px solid #d8e2eb;border-radius:9px;padding:20px}.card h3{margin:0 0 10px;font-size:17px}.card p{font-size:14px;line-height:1.6;color:#647c8e}.card footer{margin-top:17px;display:flex;gap:8px}.timeline{border-left:2px solid #dce8f1;margin:15px 0 0 5px;padding-left:14px}.timeline-item{position:relative;margin-bottom:17px;font-size:13px;line-height:1.5}.timeline-item:before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:#5e93ba;left:-18.5px;top:5px}.timeline-item small{display:block;color:#8495a3;font-size:12px}.login{min-height:100dvh;display:grid;place-items:center;background:#142b43;padding:25px}.loginbox{background:white;border-radius:13px;width:480px;max-width:100%;padding:38px}.loginbox h1{font-size:29px;letter-spacing:-1px;margin:12px 0}.loginbox p{font-size:15px;color:#6c8193;line-height:1.7}.loginbox .brand{padding:0;color:#17364f}.loginchoices{display:grid;gap:9px;margin-top:20px}.loginchoices button{justify-content:space-between;min-height:50px}.loginchoices small{font-size:12px;color:#75899a}.boot{padding:80px;text-align:center;color:#547087}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90%;z-index:50;background:#173952;color:white;padding:14px 23px;border-radius:9px;box-shadow:0 5px 30px #1234;display:none;font-size:14px}#toast.show{display:block}dialog{border:1px solid #cbd8e3;border-radius:12px;padding:0;width:540px;max-width:94vw;max-height:90dvh;box-shadow:0 25px 80px #142b4340}dialog::backdrop{background:#13273b70;backdrop-filter:blur(2px)}.modalhead{padding:21px 23px;border-bottom:1px solid #dce5ed;display:flex;justify-content:space-between;align-items:center}.modalhead h2{font-size:20px;margin:0}.modalbody{padding:23px}.modalfoot{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.photo-modal{width:900px}.photo-modal img{max-width:100%;max-height:60vh;display:block;margin:auto}.settingsgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.linkbutton{font-size:13px;background:none;border:0;padding:2px 0;min-height:auto;color:#246fad;text-decoration:underline}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:15px}.gallery .photocard{border:1px solid #d8e3ec;background:white;padding:10px;border-radius:8px}.gallery .photocard img{height:170px}.gallery .photocard strong{display:block;font-size:14px;margin:8px 0}.warningbar{padding:8px 24px;font-size:12px;color:#6b5b34;background:#fff7e9;border-bottom:1px solid #ecdcbf}.hide{display:none!important}.route-tooltip{position:fixed;pointer-events:none;z-index:15;background:#173952;color:white;padding:7px 10px;font-size:12px;border-radius:5px}.progressline{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #e3eaf0}.mobile-panel-close{display:none}details{font-size:13px;margin:12px 0}summary{cursor:pointer;padding:7px 0;color:#607b91}details p{font-size:13px;line-height:1.7}.scrollfoot{padding:13px;color:#7c8f9f;font-size:13px;text-align:center}.editbar{padding:10px 13px;background:#eaf5ff;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#246084;gap:8px}.editbar button{padding:6px 10px;min-height:33px;font-size:13px}
@media(max-width:1150px){.layout{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding:23px 8px 15px}.brand{padding:0 13px 29px}.brand span,.nav .navtext,.sidefoot,.nav small{display:none}.nav button{justify-content:center;padding:14px}.workspace{grid-template-columns:minmax(0,1fr) 296px}.topbar{padding:0 18px}.pagehead{padding:18px}.headbuttons .optional{display:none}.account .username{display:none}.projectpick{max-width:290px}}
@media(max-width:820px){.topbar{height:63px;padding:0 12px;gap:5px}.projectpick{max-width:210px;font-size:14px}.topright{gap:7px}.connection{font-size:12px}.topright>button{padding:8px;font-size:12px}.pagehead{padding:15px}.pagehead h1{font-size:20px}.workspace{grid-template-columns:minmax(0,1fr);margin:0 12px 12px;position:relative}.rightpanel{display:none;position:absolute;right:0;top:0;bottom:0;width:310px;z-index:10;box-shadow:-10px 0 35px #142b4328}.workspace.showpanel .rightpanel{display:block}.mobile-panel-close{display:inline-flex}.toolbar .toolword{display:none}.statrow{grid-template-columns:1fr 1fr}.settingsgrid{grid-template-columns:1fr}.drawfoot .legend{display:none}.pagehead .headbuttons>button{font-size:13px;padding:8px 10px}.warningbar{font-size:11px;padding:6px 12px}}
@media(max-width:550px){.layout{grid-template-columns:1fr}.sidebar{display:none}.account{display:none}.pagehead{gap:8px}.headbuttons{gap:5px}.headbuttons button.optional{display:none}.projectpick{max-width:175px}.list-content{padding:0 12px 20px}.workspace .rightpanel{width:100%}.topright .connection{display:none}.stat strong{font-size:23px}.drawtop select{max-width:75%;min-width:180px}}

.photo-stage{position:relative;width:fit-content;margin:auto;line-height:0}.photo-stage img{max-width:100%;max-height:55vh;display:block}.photo-stage svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.photo-tools{display:flex;gap:7px;align-items:center;margin:12px 0;flex-wrap:wrap}.photo-tools button{font-size:13px;min-height:36px;padding:6px 10px}
.drawingarea .viewport{touch-action:none;overscroll-behavior:contain;user-select:none;cursor:grab;min-height:120px}.drawingarea .viewport.is-dragging,.drawingarea .viewport.is-dragging .routes{cursor:grabbing!important}.sheet-space{position:relative;min-width:100%;min-height:100%}.drawingarea .sheet{position:absolute;margin:0;transform-origin:0 0}.drawing-nav{display:flex;align-items:center;gap:16px;padding:10px 14px;border-bottom:1px solid #dbe4ed;background:#f7fafd;flex-shrink:0}.nav-map{width:156px;aspect-ratio:4/3;position:relative;flex:none;background:#fff;border:1px solid #b6c7d7;box-shadow:0 1px 5px #17395212;line-height:0;overflow:hidden}.nav-map canvas{width:100%;height:100%;position:absolute;inset:0}.region-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}.region-grid button{border:0;border-right:1px dashed #6688a6;border-bottom:1px dashed #6688a6;border-radius:0;min-height:0;padding:0;background:#e9f3fb22;align-items:flex-start;justify-content:flex-start;position:relative;touch-action:manipulation}.region-grid button:nth-child(3n){border-right:0}.region-grid button:nth-child(n+4){border-bottom:0}.region-grid button span{display:grid;place-items:center;margin:4px;width:23px;height:23px;line-height:1;background:#173952e8;color:#fff;border-radius:4px;font-size:12px;box-shadow:0 1px 4px #fff9}.region-grid button:hover,.region-grid button[aria-pressed=true]{background:#237fc343}.region-grid button[aria-pressed=true] span{background:#d77420}.nav-window{position:absolute;border:2px solid #e5802b;background:#f3a14b19;pointer-events:none;box-shadow:0 0 0 1px #fff9}.nav-description{display:flex;flex-direction:column;gap:5px;line-height:1.5;font-size:12px;color:#6c8193}.nav-description strong{font-size:14px;color:#294e6c}.nav-description .nav-help{margin-top:2px;color:#71869a}.rasterstatus{font-size:11px;white-space:nowrap;color:#6b8093}.toolbar #zoomlabel{min-width:42px;text-align:center}.toolbar button{touch-action:manipulation}.drawtop,.toolbar,.drawfoot,.editbar{flex-shrink:0}
@media(max-height:800px){.drawing-nav{padding:7px 12px;gap:12px}.nav-map{width:136px}.nav-description .nav-help{display:none}.toolbar{padding-top:6px;padding-bottom:6px}.drawtop{padding-top:6px;padding-bottom:6px}}
@media(max-width:550px){.nav-description{font-size:11px}.nav-map{width:136px}.drawing-nav{gap:10px}.rasterstatus{display:none}.toolbar{gap:3px}.toolbar button{padding:7px}}
