*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:JetBrains Mono,ui-monospace,Consolas,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}@font-face{font-display:swap;font-family:Commissioner;font-style:normal;font-weight:400 700;src:url(/assets/fonts/commissioner-greek.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Commissioner;font-style:normal;font-weight:400 700;src:url(/assets/fonts/commissioner-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Commissioner;font-style:normal;font-weight:400 700;src:url(/assets/fonts/commissioner-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:400 700;src:url(/assets/fonts/jetbrains-mono-greek.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:400 700;src:url(/assets/fonts/jetbrains-mono-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:400 700;src:url(/assets/fonts/jetbrains-mono-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Sofia Sans Condensed;font-style:normal;font-weight:600 800;src:url(/assets/fonts/sofia-sans-condensed-greek.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Sofia Sans Condensed;font-style:normal;font-weight:600 800;src:url(/assets/fonts/sofia-sans-condensed-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Sofia Sans Condensed;font-style:normal;font-weight:600 800;src:url(/assets/fonts/sofia-sans-condensed-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--paper:#edefea;--surface:#fcfcfa;--sunken:#e4e8e1;--ink:#17201d;--graphite:#56605b;--faint:#7a847e;--grid:#d5d9d0;--gridline:#e4e7e0;--hivis:#e8641a;--hivis-ink:#9c3f09;--hivis-soft:#fbe3d2;--action:#b4490b;--action-fg:#fff;--ok:#3f6b35;--ok-soft:#dce8d5;--warn:#9a6200;--warn-soft:#f4e5c2;--bad:#be3127;--bad-soft:#f7dbd6;--water:#2a6a8a;--water-soft:#d8e7ef;--contour:#9a6038;--ord1:#17201d;--ord2:#2a6a8a;--ord3:#9a6038;--shadow:0 1px 2px rgba(23,32,29,.05),0 12px 32px -14px rgba(23,32,29,.22);--f-display:"Sofia Sans Condensed","Arial Narrow","Roboto Condensed",sans-serif;--f-ui:"Commissioner","Segoe UI",system-ui,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0f1513;--surface:#161e1b;--sunken:#1d2622;--ink:#e3e7e0;--graphite:#9aa49e;--faint:#717c76;--grid:#2a3430;--gridline:#202925;--hivis:#f27c34;--hivis-ink:#f59a5e;--hivis-soft:#3a2517;--action:#f27c34;--action-fg:#10140f;--ok:#7fb069;--ok-soft:#1d2d1b;--warn:#e0a93b;--warn-soft:#33290f;--bad:#f0705f;--bad-soft:#3b1d19;--water:#6bb2d6;--water-soft:#15262f;--contour:#c48a5e;--ord1:#e3e7e0;--ord2:#6bb2d6;--ord3:#c48a5e;--shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px -14px rgba(0,0,0,.6);color-scheme:dark}}:root[data-theme=dark]{--paper:#0f1513;--surface:#161e1b;--sunken:#1d2622;--ink:#e3e7e0;--graphite:#9aa49e;--faint:#717c76;--grid:#2a3430;--gridline:#202925;--hivis:#f27c34;--hivis-ink:#f59a5e;--hivis-soft:#3a2517;--action:#f27c34;--action-fg:#10140f;--ok:#7fb069;--ok-soft:#1d2d1b;--warn:#e0a93b;--warn-soft:#33290f;--bad:#f0705f;--bad-soft:#3b1d19;--water:#6bb2d6;--water-soft:#15262f;--contour:#c48a5e;--ord1:#e3e7e0;--ord2:#6bb2d6;--ord3:#c48a5e;--shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px -14px rgba(0,0,0,.6);color-scheme:dark}[hidden]{display:none!important}body,html{height:100%}body{background:var(--paper);color:var(--ink);font:400 14px/1.5 var(--f-ui);-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--hivis);outline-offset:2px}h1{font:700 32px/1.05 var(--f-display);letter-spacing:.005em;margin:0;text-wrap:balance}h2{font:700 19px/1.2 var(--f-display)}h2,h3{letter-spacing:.01em;margin:0}h3{font:700 16px/1.2 var(--f-display)}a{color:var(--water)}code,kbd{font-size:.92em}.mono,.num,code,kbd{font-family:var(--f-mono)}.mono,.num{font-variant-numeric:tabular-nums}.u{font-size:.72em;margin-left:1px;vertical-align:.42em}.faint{color:var(--faint)}.lbl,.muted{color:var(--graphite)}.lbl{font:600 11.5px/1.25 var(--f-display);letter-spacing:.09em;text-transform:uppercase}.lede{margin:6px 0 0;max-width:70ch}.hint,.lede{color:var(--graphite)}.hint{font-size:12.5px;line-height:1.5;margin:0}.ic{height:15px;width:15px}.ic,.tri{flex:none}.tri{display:inline-block;height:14px;vertical-align:-2px;width:14px}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100%}.rail{background:var(--surface);border-right:1px solid var(--grid);display:flex;flex-direction:column;gap:16px;height:100vh;height:100dvh;overflow-y:auto;padding:18px 14px 14px;position:sticky;top:0}.brand{align-items:center;color:var(--ink);display:flex;gap:10px;padding:2px 6px;text-decoration:none}.mark{flex:none;height:28px;width:28px}.word{font:800 23px/1 var(--f-display);letter-spacing:.01em}.word b{color:var(--hivis);font-weight:800}.projsw{background:var(--paper);border:1px solid var(--grid);border-radius:8px;color:var(--ink);display:grid;gap:3px;padding:10px 12px;text-align:left;text-decoration:none}.projsw:hover{border-color:var(--graphite)}.projsw .pname{font-weight:600;line-height:1.3}.projsw .crs{color:var(--graphite);font:500 11.5px/1.3 var(--f-mono)}.nav{display:flex;flex-direction:column;gap:1px}.nav .lbl{margin:12px 10px 4px}.nav a{align-items:center;border-radius:6px;color:var(--graphite);display:flex;font-weight:500;gap:10px;padding:7px 10px;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{background:var(--paper);color:var(--ink)}.nav a[aria-current=page]{font-weight:600}.nav .tick{flex:none;height:10px;width:10px;fill:transparent}.nav a[aria-current=page] .tick{fill:var(--hivis)}.badge{border-radius:10px;font:700 11px/18px var(--f-mono);margin-left:auto;min-width:20px;padding:0 6px;text-align:center}.badge.hv{background:var(--hivis-soft);color:var(--hivis-ink)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.me{align-items:center;border-top:1px solid var(--grid);display:flex;gap:10px;margin-top:auto;padding:12px 4px 0}.me .who{display:grid;line-height:1.25;min-width:0}.me .who b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me small{color:var(--graphite);font-size:11.5px}.avatar{background:var(--ink);border-radius:50%;color:var(--surface);display:grid;flex:none;font:700 12px var(--f-display);height:32px;letter-spacing:.06em;place-items:center;width:32px}.iconbtn{background:none;border:1px solid transparent;border-radius:6px;color:var(--graphite);cursor:pointer;display:grid;height:32px;margin-left:auto;place-items:center;width:32px}.iconbtn:hover{border-color:var(--grid);color:var(--ink)}.main{display:flex;flex-direction:column;min-width:0}.top{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:var(--paper);background:color-mix(in srgb,var(--paper) 90%,transparent);border-bottom:1px solid var(--grid);flex-wrap:wrap;gap:10px 16px;justify-content:space-between;padding:11px 28px;position:sticky;top:0;z-index:5}.crumbs,.top{align-items:center;display:flex}.crumbs{color:var(--graphite);font-size:13px;gap:8px;min-width:0}.crumbs b{color:var(--ink);font-weight:600}.crumbs .sep{color:var(--faint)}.crumbs a{color:inherit;text-decoration:none}.crumbs a:hover{color:var(--ink)}.topr{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.seg{background:var(--surface);border:1px solid var(--grid);border-radius:7px;display:inline-flex;padding:2px}.seg a,.seg button{background:none;border:0;border-radius:5px;color:var(--graphite);cursor:pointer;font:600 12.5px/1.4 var(--f-mono);padding:4px 10px;text-decoration:none}.seg [aria-pressed=true]{background:var(--ink);color:var(--surface)}.page{display:flex;flex-direction:column;gap:20px;max-width:1440px;padding:26px 28px 56px;width:100%}.phead{align-items:flex-end;display:flex;flex-wrap:wrap;gap:14px 20px;justify-content:space-between}.phead>div{min-width:0}.actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.panel{background:var(--surface);border:1px solid var(--grid);border-radius:10px;min-width:0}.card{flex-direction:column;padding:16px 18px}.card,.panel-h{display:flex;gap:12px}.panel-h{border-bottom:1px solid var(--gridline);flex-wrap:wrap;justify-content:space-between;padding:14px 18px}.btn,.panel-h{align-items:center}.btn{background:var(--surface);border:1px solid var(--grid);border-radius:6px;color:var(--ink);cursor:pointer;display:inline-flex;font-weight:600;gap:8px;justify-content:center;line-height:1.3;padding:8px 14px;text-decoration:none;white-space:nowrap}.btn:hover{border-color:var(--graphite)}.btn.sm{font-size:12.5px;padding:5px 10px}.btn.wide{width:100%}.btn-primary{background:var(--action);border-color:var(--action);color:var(--action-fg)}.btn-primary:hover{border-color:var(--action);filter:brightness(1.08)}.btn-danger{color:var(--bad)}.btn-danger:hover{border-color:var(--bad)}.btn[disabled]{cursor:not-allowed;opacity:.5}.linkbtn{background:none;border:0;color:var(--water);cursor:pointer;font:inherit;padding:0;text-decoration:underline;text-underline-offset:2px}.pill{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:6px;line-height:1.6;padding:2px 9px 2px 8px;white-space:nowrap}.pill:before{background:currentColor;border-radius:50%;content:"";flex:none;height:7px;width:7px}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.warn:before{border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%);height:7px;width:8px}.pill.bad,.pill.error{background:var(--bad-soft);color:var(--bad)}.pill.bad:before,.pill.error:before{border-radius:1px;height:6px;transform:rotate(45deg);width:6px}.pill.neutral,.pill.oneway,.pill.unchecked{background:var(--sunken);color:var(--graphite)}.pill.oneway:before,.pill.unchecked:before{background:none;border-radius:0;border-top:2px dashed;height:0;width:10px}.pill.info{background:var(--water-soft);color:var(--water)}.chip{border-radius:4px;display:inline-block;font:700 10.5px/1 var(--f-mono);letter-spacing:.04em;padding:4px 6px;vertical-align:1px;white-space:nowrap}.chip.epsg,.chip.ord2{background:var(--water-soft);color:var(--water)}.chip.custom,.chip.ord3{background:var(--hivis-soft);color:var(--hivis-ink)}.chip.local,.chip.neutral{background:var(--sunken);color:var(--graphite)}.chip.ord1{background:var(--ink);color:var(--surface)}.check{align-items:center;cursor:pointer;display:flex;gap:9px}.check input{accent-color:var(--hivis);height:16px;margin:0;width:16px}.inp{background:var(--surface);border:1px solid var(--grid);border-radius:5px;color:var(--ink);font:inherit;min-width:0;padding:8px 10px;width:100%}.inp.num{text-align:right}.inp.mono,.inp.num{font-family:var(--f-mono)}.inp:focus{border-color:var(--hivis);box-shadow:0 0 0 3px var(--hivis-soft);outline:none}textarea.inp{font-family:var(--f-mono);font-size:13px;min-height:120px;resize:vertical}select.inp{cursor:pointer}.field{display:grid;gap:5px;min-width:0}.field>span{color:var(--graphite);font-size:12.5px;font-weight:500}.fields{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.note{border-radius:6px;color:var(--ink);font-size:13px;line-height:1.45;margin:0;padding:9px 12px 9px 34px;position:relative}.note:before{background:currentColor;content:"";height:9px;left:13px;position:absolute;top:13px;width:9px}.note.bad,.note.error{background:var(--bad-soft)}.note.bad:before,.note.error:before{border-radius:1px;color:var(--bad);transform:rotate(45deg)}.note.warn{background:var(--warn-soft)}.note.warn:before{clip-path:polygon(50% 0,100% 100%,0 100%);color:var(--warn)}.note.ok,.note.success{background:var(--ok-soft)}.note.ok:before,.note.success:before{border-radius:50%;color:var(--ok)}.note.info{background:var(--water-soft)}.note.info:before{border-radius:50%;color:var(--water)}.note.oneway{background:var(--sunken)}.note.oneway:before{background:none;border-top:2px dashed;color:var(--graphite);height:0;top:17px}.empty{color:var(--graphite);display:grid;gap:12px;justify-items:center;padding:36px 20px;text-align:center}.empty b{color:var(--ink);font:700 18px var(--f-display)}.tbl-wrap{overflow-x:auto}.tbl{border-collapse:collapse;font-size:13.5px;width:100%}.lbl .nc,.tbl th .nc{letter-spacing:0;text-transform:none}.tbl th{border-bottom:1px solid var(--grid);color:var(--graphite);font:600 11.5px/1.2 var(--f-display);letter-spacing:.08em;padding:11px 12px;text-align:left;text-transform:uppercase}.tbl td,.tbl th{white-space:nowrap}.tbl td{border-bottom:1px solid var(--gridline);padding:8px 12px;vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:0}.tbl .num{text-align:right}.tbl tbody tr:hover td{background:var(--paper)}.tbl tbody tr.sel td,.tbl tbody tr.sel:hover td{background:var(--hivis-soft)}.tbl tr.click{cursor:pointer}.tbl .over{color:var(--bad);font-weight:600}.tbl .near{color:var(--warn);font-weight:600}.tbl td.dim{color:var(--faint)}.tbl td.wrap{white-space:normal}.tbl tfoot td{border-bottom:0;border-top:1px solid var(--grid);font-weight:600}.pcell{display:grid;gap:1px}.pcell b{font-weight:600}.pcell small{color:var(--faint);font:500 11.5px var(--f-mono)}.mini{font:600 12px var(--f-mono);gap:12px}.mini,.mini span{display:inline-flex}.mini span{align-items:center;gap:5px}.mini i{background:currentColor;display:inline-block;height:7px;width:7px}.mini .ok{color:var(--ok)}.mini .ok i{border-radius:50%}.mini .warn{color:var(--warn)}.mini .warn i{clip-path:polygon(50% 0,100% 100%,0 100%);width:8px}.mini .bad{color:var(--bad)}.mini .bad i{height:6px;transform:rotate(45deg);width:6px}.mini .oneway{color:var(--graphite)}.mini .oneway i{background:none;border-top:2px dashed;height:0;width:9px}.form-sec{border-bottom:1px solid var(--gridline);display:grid;gap:16px 28px;grid-template-columns:210px minmax(0,1fr);padding:22px 24px}.sec-h{align-items:baseline;display:flex;gap:10px}.step{border:1px solid var(--hivis);border-radius:50%;color:var(--hivis-ink);display:grid;flex:none;font:700 12px var(--f-mono);height:22px;place-items:center;transform:translateY(-2px);width:22px}.stack{display:flex;flex-direction:column;gap:14px;min-width:0}.kinds{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.kind{align-content:start;background:var(--surface);border:1px solid var(--grid);border-radius:8px;cursor:pointer;display:grid;gap:4px;padding:14px 14px 13px;position:relative}.kind input{opacity:0;pointer-events:none;position:absolute}.kind b{font:700 16px/1.2 var(--f-display);letter-spacing:.01em}.kind span{color:var(--graphite);font-size:12.5px;line-height:1.45}.kind:hover{border-color:var(--graphite)}.kind:has(input:checked){border-color:var(--hivis);box-shadow:inset 0 0 0 1px var(--hivis)}.kind:has(input:checked):after{background:var(--hivis);border-radius:50%;content:"";height:9px;position:absolute;right:13px;top:13px;width:9px}.kind:has(input:focus-visible){outline:2px solid var(--hivis);outline-offset:2px}.optlist{border:1px solid var(--grid);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.opt{align-items:center;background:var(--surface);border-bottom:1px solid var(--gridline);cursor:pointer;display:grid;gap:12px;grid-template-columns:18px minmax(0,1fr) auto;padding:10px 14px}.opt:last-child{border-bottom:0}.opt:hover{background:var(--paper)}.opt input{accent-color:var(--hivis);height:15px;margin:0;width:15px}.opt .t{display:grid;gap:1px;min-width:0}.opt .t b{font-weight:600}.opt .t small{color:var(--graphite);font:500 11.5px/1.4 var(--f-mono);white-space:normal}.opt .code{color:var(--graphite);font:600 12px var(--f-mono)}.opt.disabled{cursor:not-allowed;opacity:.55}.subform{background:var(--paper);border:1px dashed var(--grid);border-radius:8px;display:flex;flex-direction:column;gap:12px;padding:16px}.factors{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.factor{border:1px solid var(--grid);border-radius:8px;display:grid;gap:4px;padding:12px 14px}.factor b{font:600 18px/1.2 var(--f-mono)}.factor.main{background:var(--hivis-soft);border-color:var(--hivis)}.narrow{max-width:260px}.tolrow{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.tolrow>span:first-child{color:var(--graphite);font-size:13px;min-width:270px}.tolrow .inp{width:80px}.tolrow small{color:var(--graphite);font:500 12px var(--f-mono)}.form-foot{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding:16px 24px}.imgrid{align-items:start;display:grid;gap:20px;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}.imgrid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.drop{align-items:center;background-color:var(--surface);background-image:linear-gradient(var(--gridline) 1px,transparent 1px),linear-gradient(90deg,var(--gridline) 1px,transparent 1px);background-size:22px 22px;border:1.5px dashed var(--faint);border-radius:10px;color:var(--graphite);cursor:pointer;display:flex;flex-direction:column;gap:6px;justify-content:center;padding:30px 20px;text-align:center}.drop b{color:var(--ink);font:700 18px var(--f-display)}.drop>.ic{color:var(--hivis);height:30px;width:30px}.drop.over{background-color:var(--hivis-soft);border-color:var(--hivis)}.drop input[type=file]{font-size:12.5px;max-width:100%}.sum{padding:6px 18px 14px}.sum dl{display:grid;gap:0 18px;grid-template-columns:auto minmax(0,1fr);margin:0}.sum dd,.sum dt{border-bottom:1px solid var(--gridline);margin:0;padding:7px 0}.sum dt{color:var(--graphite);font-size:13px}.sum dd{font-weight:500;min-width:0;overflow-wrap:anywhere;text-align:right}.raw{font:500 12.5px/1.65 var(--f-mono);margin:0;max-height:440px;overflow:auto;padding:12px 0}.raw span.l{display:block;padding:0 18px 0 0;white-space:pre}.raw span.l:before{color:var(--faint);content:attr(data-n);display:inline-block;padding-right:14px;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:48px}.raw .rk{color:var(--hivis-ink);font-weight:700}.raw .flagged{background:var(--warn-soft)}.counts{display:flex;flex-wrap:wrap;gap:8px}.counts span{background:var(--sunken);border-radius:4px;font:600 12px var(--f-mono);padding:3px 8px}.obsmeta{color:var(--graphite);display:flex;flex-wrap:wrap;font-size:13px;gap:8px 18px}.obsmeta b{color:var(--ink);font-family:var(--f-mono)}.obslist{display:flex;flex-direction:column;gap:16px}.obslist>article{scroll-margin-top:72px}.setup-h{align-items:flex-end;border-bottom:1px solid var(--gridline);display:flex;flex-wrap:wrap;gap:12px 28px;padding:14px 18px}.setup-id{display:grid;gap:2px;margin-right:auto}.setup-id .stn{align-items:center;display:flex;font:800 24px/1 var(--f-display);gap:8px}.setup-id .tri{height:16px;width:16px}.kv{display:grid;gap:3px}.kv>span{color:var(--graphite);font-size:12px}.kv b{font:600 14px var(--f-mono)}.kv .cell{background:var(--surface);border-color:var(--grid);width:100px}.notes{display:flex;flex-direction:column;gap:8px;padding:0 18px}.notes:not(:empty){padding:12px 18px 0}.cell{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--ink);font:500 13px var(--f-mono);min-width:84px;padding:5px 7px;text-align:right;width:100%}.cell.txt{min-width:72px;text-align:left}.cell:hover{border-color:var(--grid)}.cell:focus,.cell:hover{background:var(--surface)}.cell:focus{border-color:var(--hivis);box-shadow:0 0 0 3px var(--hivis-soft);outline:none}.cell.edited{background:var(--hivis-soft);box-shadow:inset 0 -2px 0 var(--hivis)}.cell.busy{opacity:.6}select.cell{cursor:pointer;min-width:64px;text-align:left}.obs td{padding:3px 6px}.obs td:first-child{padding-left:16px}.obs th{padding:10px 6px}.obs th:first-child{padding-left:16px}.obs td.ro{color:var(--graphite);font:500 13px var(--f-mono);padding-right:12px;text-align:right}.obs tr.off td:not(:first-child){opacity:.42}.obs tr.flag td:first-child{box-shadow:inset 3px 0 0 var(--bad)}.obs tr.flag td{background:color-mix(in srgb,var(--bad-soft) 55%,transparent)}.obs td.edited-td{box-shadow:inset 0 -2px 0 var(--hivis)}.obs.st-only tr[data-kind=SS]{display:none}.obs input[type=checkbox]{accent-color:var(--hivis);cursor:pointer;height:16px;margin:0;vertical-align:middle;width:16px}.face{color:var(--faint);font:600 10.5px var(--f-mono)}.revert{background:var(--surface);border:1px solid var(--grid);border-radius:5px;color:var(--hivis-ink);cursor:pointer;font-size:12px;font-weight:600;padding:3px 8px}.revert:hover{border-color:var(--hivis)}.netstats{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.netstats .stat{color:var(--graphite);font-size:13px;margin-right:4px}.netstats .stat b{color:var(--ink);font-size:15px}.netgrid{align-items:start;display:grid;gap:20px;grid-template-columns:minmax(0,1fr) 330px}.mapwrap{overflow:hidden;position:relative}.map svg{cursor:grab;display:block;height:auto;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.map svg.dragging{cursor:grabbing}.readout{background:var(--surface);border:1px solid var(--grid);border-radius:4px;color:var(--graphite);font:500 11.5px var(--f-mono);left:12px;padding:4px 8px;pointer-events:none;position:absolute;top:10px;white-space:nowrap}.maptools{bottom:10px;display:flex;gap:6px;position:absolute;right:10px}.maptools .btn{box-shadow:var(--shadow);padding:5px 8px}.side{flex-direction:column;gap:16px;min-width:0}.lc-h,.side{display:flex}.lc-h{align-items:flex-start;gap:10px;justify-content:space-between}.lc-name{align-items:center;display:flex;flex-wrap:wrap;font:800 24px/1.1 var(--f-display);gap:8px;margin-top:3px}.lc-name .arr{color:var(--faint);font-weight:600}.kvt{border-collapse:collapse;font-size:13px;width:100%}.kvt th{color:var(--graphite);font:600 11.5px var(--f-mono);padding:4px 0 6px;text-align:right}.kvt th:first-child{text-align:left}.kvt td{border-top:1px solid var(--gridline);padding:5px 0}.kvt td.num{font-family:var(--f-mono);text-align:right}.checks{display:grid;gap:10px;grid-template-columns:1fr 1fr}.chk{border:1px solid var(--grid);border-radius:8px;display:grid;gap:5px;min-width:0;padding:10px 12px}.chk b{font:700 17px var(--f-mono)}.chk.ok b{color:var(--ok)}.chk.warn b{color:var(--warn)}.chk.bad b{color:var(--bad)}.chk .tol{color:var(--graphite);font:500 11.5px var(--f-mono)}.gauge{background:var(--sunken);border-radius:3px;height:6px;overflow:hidden;position:relative}.gauge i{background:currentColor;border-radius:3px;left:0}.gauge i,.gauge s{bottom:0;position:absolute;top:0}.gauge s{background:var(--ink);left:66.6%;width:2px}.chk.ok .gauge{color:var(--ok)}.chk.warn .gauge{color:var(--warn)}.chk.bad .gauge{color:var(--bad)}.means{color:var(--graphite);display:flex;flex-wrap:wrap;font-size:12.5px;gap:6px 18px}.means b{color:var(--ink);font-family:var(--f-mono)}.legend{gap:6px}.legend,.tabs{display:flex;flex-wrap:wrap}.tabs{align-items:center;border-bottom:1px solid var(--grid);gap:4px;padding:8px 10px 0}.tabs [role=tab]{background:none;border:0;border-bottom:2px solid transparent;color:var(--graphite);cursor:pointer;font:700 15px var(--f-display);letter-spacing:.02em;margin-bottom:-1px;padding:9px 12px 10px}.tabs [role=tab][aria-selected=true]{border-bottom-color:var(--hivis);color:var(--ink)}.tabs .grow{flex:1}.tabs .btn{margin-bottom:6px}.layers{display:grid;gap:7px}.swatch{border-top:3px solid;display:inline-block;height:0;margin-right:2px;vertical-align:middle;width:18px}.trav{overflow:hidden}.trav-h{border-bottom:1px solid var(--gridline);gap:10px 16px;padding:14px 18px}.trav-h,.trav-h h3{align-items:center;display:flex;flex-wrap:wrap}.trav-h h3{font-size:20px;gap:10px;margin-right:auto}.trav-route{align-items:center;border-bottom:1px solid var(--gridline);display:flex;flex-wrap:wrap;font:600 13px var(--f-mono);gap:4px 6px;padding:10px 18px}.trav-route .ref{font-weight:500}.trav-route .arr,.trav-route .ref{color:var(--faint)}.trav-route .known{color:var(--ink);text-decoration:underline;text-decoration-color:var(--hivis);text-underline-offset:3px}.closures{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));padding:14px 18px}.closures .chk .lbl{display:flex;gap:8px;justify-content:space-between}.orders{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.sugg{display:grid;gap:8px}.sugg-row{align-items:center;background:var(--paper);border:1px dashed var(--grid);border-radius:8px;display:flex;flex-wrap:wrap;gap:8px 14px;padding:10px 14px}.sugg-row .route{font:600 13px var(--f-mono);margin-right:auto;min-width:0;overflow-wrap:anywhere}dialog.gz-modal{background:transparent;border:0;color:var(--ink);height:100%;inset:0;max-height:100%;max-width:100%;overflow:visible;padding:1rem;position:fixed;width:100%}dialog.gz-modal[open]{align-items:center;display:flex;justify-content:center}dialog.gz-modal::backdrop{background:rgba(15,23,42,.55)}dialog.gz-modal>.panel{box-shadow:var(--shadow);max-height:calc(100vh - 2rem);overflow-y:auto;width:min(680px,100%)}.modal-h{align-items:center;border-bottom:1px solid var(--gridline);display:flex;gap:12px;justify-content:space-between;padding:16px 20px}.modal-b{display:grid;gap:14px;padding:18px 20px}.modal-f{border-top:1px solid var(--gridline);display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding:14px 20px}.setgrid{display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.opts{gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.optc,.opts{display:grid}.optc{background:var(--surface);border:1px solid var(--grid);border-radius:8px;cursor:pointer;gap:3px;padding:12px 14px;position:relative;text-align:left}.optc input{opacity:0;pointer-events:none;position:absolute}.optc b{font-weight:600}.optc small{color:var(--graphite);font-size:12px}.optc:hover{border-color:var(--graphite)}.optc:has(input:checked){border-color:var(--hivis);box-shadow:inset 0 0 0 1px var(--hivis)}.optc:has(input:focus-visible){outline:2px solid var(--hivis);outline-offset:2px}.example{border-radius:6px;font:500 13px var(--f-mono);margin:0;padding:10px 12px}.example,.signin{background:var(--paper)}.signin{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);min-height:100%}.si-art{background:var(--surface);border-right:1px solid var(--grid);min-height:240px;overflow:hidden;position:relative}.si-art canvas{display:block;height:100%;inset:0;position:absolute;width:100%}.si-brand{display:grid;gap:10px;left:32px;max-width:min(400px,80%);position:absolute;top:28px}.si-brand .brand{padding:0}.si-brand .word{font-size:30px}.si-brand .mark{height:36px;width:36px}.si-tag{border-radius:4px;font:700 26px/1.15 var(--f-display);justify-self:start;margin-left:-8px;padding:4px 8px 6px;text-wrap:balance}.si-coord,.si-tag{background:var(--surface)}.si-coord{border:1px solid var(--grid);border-radius:4px;bottom:26px;color:var(--graphite);font:500 12px var(--f-mono);left:32px;padding:4px 8px;position:absolute}.si-side{display:flex;flex-direction:column;overflow-y:auto;padding:18px 24px 24px}.si-top{display:flex;justify-content:flex-end}.si-form{display:flex;flex-direction:column;gap:14px;margin:auto;padding:24px 0;width:min(380px,100%)}.si-form h1{margin-bottom:6px}.toast{background:var(--ink);border-radius:8px;bottom:22px;box-shadow:var(--shadow);color:var(--surface);font-weight:500;left:50%;max-width:calc(100% - 32px);opacity:0;padding:10px 16px;pointer-events:none;position:fixed;transform:translate(-50%,20px);transition:opacity .18s ease,transform .18s ease;z-index:60}.toast.on{opacity:1;transform:translate(-50%)}.toast.err{background:var(--bad);color:#fff}.spin{animation:gz-spin .7s linear infinite;border:2px solid var(--grid);border-radius:50%;border-top-color:var(--hivis);display:inline-block;height:14px;vertical-align:-2px;width:14px}@keyframes gz-spin{to{transform:rotate(1turn)}}.m-bg{fill:var(--surface)}.m-grid{stroke:var(--gridline);stroke-width:1}.m-glab{fill:var(--faint);font:500 10.5px var(--f-mono);paint-order:stroke;stroke:var(--surface);stroke-width:3px}.m-ray{stroke:var(--faint);stroke-width:.8;stroke-dasharray:2 3;fill:none;opacity:.75}.m-ray.st{stroke:var(--graphite);stroke-dasharray:none;opacity:.55}.m-trav{fill:none;stroke-linecap:round;stroke-linejoin:round}.m-trav.o1{stroke:var(--ord1);stroke-width:8;opacity:.22}.m-trav.o2{stroke:var(--ord2);stroke-width:7;opacity:.3}.m-trav.o3{stroke:var(--ord3);stroke-width:6;opacity:.35;stroke-dasharray:10 5}.m-trav.err{stroke:var(--bad);opacity:.3}.m-link{stroke-width:2.4;stroke-linecap:round;fill:none}.m-link.ok{stroke:var(--ok)}.m-link.warn{stroke:var(--warn)}.m-link.bad{stroke:var(--bad)}.m-link.oneway{stroke:var(--graphite);stroke-dasharray:7 6;stroke-width:1.6}.m-link.sel{stroke-width:4.6}.m-link.oneway.sel{stroke-width:2.8}.m-halo{stroke:var(--surface);stroke-width:10;stroke-linecap:round}.m-hit{stroke:transparent;stroke-width:18;cursor:pointer}.m-llab{font:600 10.5px var(--f-mono);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;pointer-events:none}.m-llab.ok{fill:var(--ok)}.m-llab.warn{fill:var(--warn)}.m-llab.bad{fill:var(--bad)}.m-det,.m-llab.oneway{fill:var(--graphite)}.m-dlab{fill:var(--faint);font:500 9.5px var(--f-mono);paint-order:stroke;stroke:var(--surface);stroke-width:3px}.m-ctrl{fill:var(--ink)}.m-stn{fill:var(--surface);stroke:var(--ink);stroke-width:1.7}.m-stn.o2{stroke:var(--ord2)}.m-stn.o3{stroke:var(--ord3)}.m-slab,.m-stn-dot{fill:var(--ink)}.m-slab{font:800 14px var(--f-display);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}.m-ink{fill:var(--ink)}.m-inkline{stroke:var(--ink);stroke-width:1.5;fill:none}.m-small{fill:var(--ink);font:600 10.5px var(--f-mono)}@media (max-width:1180px){.netgrid{grid-template-columns:minmax(0,1fr)}.side{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}@media (max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}.rail{align-items:center;border-bottom:1px solid var(--grid);border-right:0;flex-direction:row;flex-wrap:wrap;gap:8px 12px;height:auto;overflow:visible;padding:10px 16px;position:static}.me .who,.projsw{display:none}.me{border:0;margin:0 0 0 auto;padding:0}.nav{flex-direction:row;gap:4px;overflow-x:auto;padding-bottom:2px;width:100%}.nav .lbl{display:none}.nav a{padding:7px 10px;white-space:nowrap}.top{padding:10px 16px;position:static}.page{padding:18px 16px 44px}.form-sec,.imgrid,.imgrid.two,.setgrid{grid-template-columns:minmax(0,1fr)}.form-sec{padding:18px 16px}.signin{grid-template-columns:minmax(0,1fr);grid-template-rows:230px auto}.si-art{border-bottom:1px solid var(--grid);border-right:0}}@media (max-width:640px){h1{font-size:27px}.checks,.factors,.kinds{grid-template-columns:minmax(0,1fr)}.tolrow>span:first-child{min-width:0;width:100%}}@media (prefers-reduced-motion:reduce){.toast{transition:none}.spin{animation:none}}.static{position:static}.fixed{position:fixed}.sticky{position:sticky}.block{display:block}.table{display:table}.hidden{display:none}.shrink{flex-shrink:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}