@font-face{font-family:Anton;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/anton-vietnamese-400-normal.7a0e1aba.woff2) format("woff2"),url(/_next/static/media/anton-vietnamese-400-normal.9feab41a.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Anton;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/anton-latin-ext-400-normal.4d008ae9.woff2) format("woff2"),url(/_next/static/media/anton-latin-ext-400-normal.af34a566.woff) format("woff");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Anton;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/anton-latin-400-normal.8051a086.woff2) format("woff2"),url(/_next/static/media/anton-latin-400-normal.70090b55.woff) format("woff");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-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/montserrat-cyrillic-ext-wght-normal.6e45df54.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/montserrat-cyrillic-wght-normal.01cec89f.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/montserrat-vietnamese-wght-normal.4cfbb1da.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/montserrat-latin-ext-wght-normal.e54f6524.woff2) format("woff2-variations");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/montserrat-latin-wght-normal.a838cfed.woff2) format("woff2-variations");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-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.17d05b18.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.7daf4077.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.17524150.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.29859c59.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-greek-400-normal.77d339c7.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-400-normal.4a5b0cb1.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.553f85d1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.fd17702b.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.4d63b447.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.ef62d646.woff) format("woff");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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-400-normal.db9d659a.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-400-normal.b0c7be19.woff) format("woff");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{--bg:#0b0b0c;--bg2:#111113;--panel:#161618;--panel2:#1d1d20;--line:#26262b;--line2:#35353c;--tx:#f3f3f1;--tx2:#a9a9ad;--tx3:#77777e;--teal:#2df5c8;--teal2:#2df5c8;--tealbg:rgba(45,245,200,.08);--ok:#22c55e;--okbg:rgba(34,197,94,.1);--warn:#f5b02e;--warnbg:rgba(245,176,46,.1);--bad:#f4525c;--badbg:rgba(244,82,92,.1);--info:#60a5fa;--infobg:rgba(96,165,250,.1);--r:14px;--sans:"Montserrat Variable",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--disp:"Anton",Impact,"Arial Narrow",sans-serif;--mono:"JetBrains Mono",ui-monospace,Consolas,monospace}*{box-sizing:border-box}body,html{margin:0;color:var(--tx);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}body,html{background:var(--bg)}body{min-height:100vh}a{color:var(--teal)}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px;color:var(--tx);background:var(--bg2);border:1px solid var(--line2);border-radius:9px;padding:9px 11px;width:100%;outline:none;transition:border .15s}input:focus,select:focus,textarea:focus{border-color:var(--teal)}textarea{resize:vertical;min-height:70px}.wrap{max-width:1320px;margin:0 auto;padding:0 22px}.mono{font-family:var(--mono);font-size:12.5px}.muted{color:var(--tx2)}.dim{color:var(--tx3)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.grid{display:grid;grid-gap:14px;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:980px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr}}.top{border-bottom:1px solid var(--line);background:rgba(6,9,15,.75);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:-webkit-sticky;position:sticky;top:0;z-index:20}.top .wrap{justify-content:space-between;height:62px;gap:16px}.brand,.top .wrap{display:flex;align-items:center}.brand{gap:11px;font-family:var(--disp);letter-spacing:.08em;font-size:19px;color:var(--tx);text-decoration:none}.brand img{width:30px;height:30px}.brand b{color:var(--teal);font-weight:400}.tabs{gap:4px;background:var(--bg2);border:1px solid var(--line);border-radius:11px;padding:4px}.tab,.tabs{display:flex}.tab{background:none;border:0;color:var(--tx2);padding:7px 14px;border-radius:8px;font-size:13.5px;font-weight:500;gap:7px;align-items:center}.tab.on,.tab:hover{color:var(--tx)}.tab.on{background:var(--panel2);box-shadow:inset 0 0 0 1px var(--line2)}.tab .dot{width:7px;height:7px;border-radius:50%;background:var(--warn)}@media(max-width:860px){.tabs{overflow-x:auto;max-width:60vw}.brand span.long{display:none}}.hero{padding:44px 0 26px}.hero h1{font-family:var(--disp);font-size:clamp(38px,6vw,76px);line-height:.98;letter-spacing:.005em;margin:0 0 14px;font-weight:400;text-transform:uppercase}.hero h1 em{font-style:normal;color:var(--teal)}.chero{padding:36px 0 8px}.chero h1{font-size:clamp(34px,4.6vw,58px)}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--disp);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:16px}.eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px var(--teal)}.hero p{max-width:760px;color:var(--tx2);font-size:16.5px;margin:0 0 18px}.badges{display:flex;flex-wrap:wrap;gap:8px}.badge{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:99px;border:1px solid rgba(0,212,180,.25);background:var(--tealbg);color:var(--teal);font-size:12px;font-weight:500}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.card{background:linear-gradient(180deg,var(--panel),var(--bg2));border:1px solid var(--line);border-radius:var(--r);padding:18px}.card h3{margin:0 0 12px;font-family:var(--sans);font-size:15.5px;font-weight:700;letter-spacing:.01em}.card h4{margin:14px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--tx3);font-weight:600}.sect{margin:22px 0}.kicker{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3);margin-bottom:8px}.btn,.kicker{font-weight:600}.btn{border:1px solid var(--line2);background:var(--panel2);color:var(--tx);padding:9px 16px;border-radius:10px;font-size:13.5px;display:inline-flex;gap:8px;align-items:center;transition:all .15s}.btn:hover{border-color:var(--tx3)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.pri{background:var(--teal);color:#06110e;border:0;font-family:var(--disp);font-weight:400;letter-spacing:.08em;text-transform:uppercase;border-radius:4px;font-size:14.5px}.btn.pri:hover{filter:brightness(1.08)}.btn.ok{background:var(--okbg);border-color:rgba(34,197,94,.4);color:#86efac}.btn.warn{background:var(--warnbg);border-color:rgba(245,176,46,.4);color:#fcd34d}.btn.bad{background:var(--badbg);border-color:rgba(244,82,92,.4);color:#fca5a5}.btn.sel{outline:2px solid currentColor;outline-offset:2px}.btn.sm{padding:5px 10px;font-size:12.5px;border-radius:8px}.link{background:none;border:0;color:var(--teal);padding:0;font-size:13px}.cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:10px;gap:10px}.case{text-align:left;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--tx);transition:all .15s}.case:hover{border-color:var(--line2);background:var(--panel)}.case.on{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal) inset;background:var(--tealbg)}.case .t{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);display:flex;justify-content:space-between}.case .n{font-weight:600;font-size:14px;margin:4px 0 2px}.case .s{font-size:12.5px;color:var(--tx2)}.rail{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px}.box{flex:1 0 132px;min-width:132px;text-align:left;background:var(--bg2);border:1px solid var(--line);border-radius:13px;padding:12px;position:relative;color:var(--tx);transition:all .15s}.box:hover{background:var(--panel)}.box.on{border-color:var(--teal);background:var(--panel2)}.box .num{font-family:var(--mono);font-size:11px;color:var(--tx3)}.box .ttl{font-family:var(--disp);font-weight:400;font-size:17px;letter-spacing:.03em;text-transform:uppercase;margin:3px 0 1px}.box .sub{font-size:11.5px;color:var(--tx3)}.box .bar{position:absolute;left:12px;right:12px;bottom:0;height:3px;border-radius:3px 3px 0 0}.box.ins{flex:0 0 112px;min-width:112px;border-style:dashed}.st-ok .bar{background:var(--ok)}.st-flag .bar{background:var(--warn)}.st-stop .bar{background:var(--bad)}.st-waiting .bar{background:var(--info)}.st-locked .bar{background:var(--line2)}.st-idle .bar{background:var(--line)}.box .pill{position:absolute;top:10px;right:10px}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.04em;padding:2px 8px;border-radius:99px;text-transform:uppercase;white-space:nowrap}.p-ok{background:var(--okbg);color:#86efac}.p-flag,.p-medium,.p-warn{background:var(--warnbg);color:#fcd34d}.p-bad,.p-critical,.p-high,.p-stop{background:var(--badbg);color:#fca5a5}.p-info,.p-low,.p-waiting{background:var(--infobg);color:#93c5fd}.p-idle,.p-locked{background:var(--panel2);color:var(--tx3)}.p-approved{background:var(--okbg);color:#86efac}.p-modified,.p-replaced{background:var(--warnbg);color:#fcd34d}.p-blocked,.p-halted{background:var(--badbg);color:#fca5a5}.p-continue{background:var(--okbg);color:#86efac}.p-review{background:var(--infobg);color:#93c5fd}.p-hold,.p-stop2{background:var(--warnbg);color:#fcd34d}.p-stopmed{background:var(--badbg);color:#fca5a5}.verdict{display:flex;gap:18px;align-items:center;border-radius:var(--r);padding:16px 20px;border:1px solid}.verdict .v{font-family:var(--disp);font-size:40px;font-weight:400;letter-spacing:.04em}.v-PROCEED{background:var(--okbg);border-color:rgba(34,197,94,.35)}.v-PROCEED .v{color:#4ade80}.v-MODIFY{background:var(--warnbg);border-color:rgba(245,176,46,.35)}.v-MODIFY .v{color:#fbbf24}.v-HALT{background:var(--badbg);border-color:rgba(244,82,92,.4)}.v-HALT .v{color:#f87171}table{width:100%;border-collapse:collapse;font-size:13.5px}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--tx3);font-weight:600;padding:8px 10px}td,th{border-bottom:1px solid var(--line)}td{padding:9px 10px;vertical-align:top}tr:last-child td{border-bottom:0}.tscroll{overflow-x:auto}.list{list-style:none;margin:0;padding:0;display:grid;grid-gap:7px;gap:7px}.li{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;font-size:13.5px}.li .pill{margin-top:1px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:12.5px;padding:3px 10px;border-radius:99px;background:var(--panel2);border:1px solid var(--line2)}.chip.neg{text-decoration:line-through;color:var(--tx3)}.meter{height:7px;background:var(--line);overflow:hidden}.meter,.meter i{border-radius:9px}.meter i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--teal2))}.meter.w i{background:linear-gradient(90deg,#f5b02e,#f4525c)}.kv{display:grid;grid-template-columns:auto 1fr;grid-gap:4px 14px;gap:4px 14px;font-size:13.5px}.kv dt{color:var(--tx3)}.kv dd{margin:0}.stat{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.stat .l{font-size:11.5px;color:var(--tx3);text-transform:uppercase;letter-spacing:.08em}.stat .n{font-family:var(--disp);font-size:28px;font-weight:400;margin-top:2px}.stat .d{font-size:12px;color:var(--tx2)}.dag{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dag .node{padding:5px 11px;border:1px solid var(--line2);border-radius:8px;background:var(--panel2);font-size:12.5px}.dag .arr{color:var(--teal)}pre.json{background:#04070c;border:1px solid var(--line);border-radius:10px;padding:14px;max-height:420px;overflow:auto;font-family:var(--mono);font-size:12px;color:#b8c7d9;margin:0}.empty{padding:48px 20px;text-align:center;color:var(--tx2);border:1px dashed var(--line2);border-radius:var(--r)}.spin{width:16px;height:16px;border:2px solid rgba(6,17,14,.3);border-top-color:#06110e;border-radius:50%;animation:sp .8s linear infinite}@keyframes sp{to{transform:rotate(1turn)}}.err{background:var(--badbg);border:1px solid rgba(244,82,92,.35);color:#fecaca;border-radius:10px}.err,.note{padding:10px 14px;font-size:13.5px}.note{background:var(--infobg);border:1px solid rgba(96,165,250,.3);color:#cfe1fb;border-radius:10px}label.f{display:block;font-size:12px;color:var(--tx3);margin-bottom:5px;font-weight:500}.fgrid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.labrow{grid-template-columns:1.4fr 1fr .9fr auto;grid-gap:8px}.labrow,.medrow{display:grid;gap:8px;margin-bottom:7px}.medrow{grid-template-columns:1.4fr 1fr 1fr auto;grid-gap:8px}.x{background:none;border:1px solid var(--line2);color:var(--tx3);border-radius:8px;width:34px}.leaflet{background:#f8fafc;color:#0f172a;border-radius:var(--r);padding:28px 30px;max-width:760px}.leaflet h2{font-family:var(--sans);font-weight:800;margin:0 0 4px;font-size:22px}.leaflet ol{padding-left:20px}.leaflet li{margin:7px 0}.leaflet .warnbox{background:#fff7ed;border:1px solid #fdba74;border-radius:10px;padding:10px 14px;margin-top:14px}footer{border-top:1px solid var(--line);margin-top:50px;padding:26px 0 40px;color:var(--tx3);font-size:12.5px}.arch{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:8px;gap:8px}@media(max-width:900px){.arch{grid-template-columns:repeat(2,1fr)}}.arch .a{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px}.arch .a b{font-family:var(--disp);display:block;margin:4px 0}@media print{.noprint,.top,footer{display:none!important}body{background:#fff}.leaflet{max-width:none}}@media(max-width:520px){.brand span{display:none}.tabs{max-width:78vw}}.sp-search{display:grid;grid-template-columns:1fr 220px;grid-gap:10px;gap:10px;margin-bottom:12px}@media(max-width:640px){.sp-search{grid-template-columns:1fr}}.symchips{display:flex;flex-wrap:wrap;gap:7px;max-height:220px;overflow:auto;padding:2px}.symchip{border:1px solid var(--line2);background:var(--bg2);color:var(--tx);border-radius:99px;padding:5px 12px;font-size:13px}.symchip.on,.symchip:hover{border-color:var(--teal)}.symchip.on{background:var(--teal);color:#06110e;font-weight:600}.symchip small{color:var(--tx3);margin-left:6px;font-size:11px}.symchip.on small{color:#06110e}.selsym{border:1px solid var(--line2);border-radius:12px;padding:12px;margin-top:10px;background:var(--bg2)}.rfbox{border:1px solid rgba(244,82,92,.35);background:rgba(244,82,92,.05);border-radius:10px;padding:10px;margin-top:8px}.rfbox .t{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:#fca5a5;font-weight:700;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}.rf{border:1px solid var(--line2);background:var(--panel);color:var(--tx2);border-radius:8px;padding:4px 10px;font-size:12.5px;margin:0 6px 6px 0}.rf.p{background:rgba(244,82,92,.18);border-color:var(--bad);color:#fecaca}.rf.a{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.5);color:#bbf7d0;text-decoration:line-through}.wk{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--bg2)}.wk.urgent{border-color:rgba(244,82,92,.45)}.wk.soon{border-color:rgba(245,176,46,.4)}.wk ul{margin:6px 0 0;padding-left:18px;font-size:13.5px}.wk li{margin:3px 0}