@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-ext-400-normal-CiZNW1ec.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-400-normal-DYBYyMQr.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.woff) format("woff");unicode-range:U+0000-00FF,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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-ext-600-normal-BNd8euf0.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-600-normal-BeUwKxhG.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.woff) format("woff");unicode-range:U+0000-00FF,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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-vietnamese-700-normal-Csr0PCuG.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-700-normal-By_5yT39.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-ext-700-normal-C8_gqRu2.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-700-normal-4Hjo2OtD.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:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/be-vietnam-pro-latin-700-normal-DlW1Zbsh.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-700-normal-C2EtzaOi.woff) format("woff");unicode-range:U+0000-00FF,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{font-family:Be Vietnam Pro,system-ui,sans-serif;color:#1d2a36;background:#f5f7f6}*{box-sizing:border-box}body{margin:0}a{color:#2a78d6;text-decoration:none}.top{display:flex;align-items:center;gap:24px;padding:10px 24px;background:#10261c;color:#fff;position:sticky;top:0;z-index:2}.brand{display:flex;gap:10px;align-items:center;color:#fff}.brand span{display:flex;flex-direction:column;line-height:1.15}.brand small{color:#b9d9c6;font-size:12px}.top nav{display:flex;gap:16px;margin-left:auto}.top nav a{color:#d8efe0}main{max-width:1240px;margin:0 auto;padding:18px 24px 40px}h1{font-size:28px;margin:14px 0 8px}h2{margin-top:30px}.hero p{font-size:15.5px;color:#3b4652;line-height:1.55;max-width:1000px}.muted{color:#56636f}.small{font-size:13px}.arch{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px;margin:14px 0}.arch div{background:#fff;border:1px solid #d5ddd8;border-radius:10px;padding:8px 10px;flex:1 1 150px;display:flex;flex-direction:column;gap:3px}.arch div.core{border-color:#2e7d32;box-shadow:0 0 0 2px #2e7d3226}.arch span{font-size:12.5px;color:#56636f}.arch i{align-self:center;color:#8a8d91;font-style:normal}.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:18px}.kpi{background:#fff;border:1px solid #d5ddd8;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}.kpi span{color:#56636f;font-size:13px}.kpi b{font-size:24px}.kpi.warn b{color:#b07d12}.kpi.bad b{color:#b3261e}.badge{display:inline-flex;gap:4px;align-items:center;font-size:12px;font-weight:600;white-space:nowrap}.badge i{font-style:normal}.badge.good{color:#1b7f1b}.badge.warn{color:#9a6b00}.badge.bad{color:#b3261e}.badge.off{color:#8a8d91}.alarms{list-style:none;padding:0;margin:0;max-height:260px;overflow:auto}.alarms li{display:flex;gap:10px;align-items:center;padding:6px 10px;border-left:3px solid #d5ddd8;background:#fff;margin-bottom:4px;border-radius:0 8px 8px 0;cursor:pointer;font-size:13.5px}.alarms li.warn{border-color:#fab219}.alarms li.bad{border-color:#d03b3b}.alarms li.good{border-color:#0ca30c;cursor:default}.alarms code{margin-left:auto}.stations{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.st{text-align:left;background:#fff;border:1px solid #d5ddd8;border-top:4px solid #0ca30c;border-radius:10px;padding:8px 10px;font:inherit;color:inherit;display:flex;flex-direction:column;gap:2px;cursor:pointer}.st.warn{border-top-color:#fab219}.st.bad{border-top-color:#d03b3b}.st.off{border-top-color:#8a8d91}.st span{font-size:12.5px;color:#3b4652}.st small{color:#8a8d91;font-size:11.5px}.dgrid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}details{background:#fff;border:1px solid #d5ddd8;border-radius:10px;margin-bottom:8px;padding:6px 10px}summary{cursor:pointer;display:flex;gap:10px;align-items:center}table{width:100%;border-collapse:collapse;font-size:13px}td,th{padding:4px 6px;border-bottom:1px solid #eef1f0;text-align:left;vertical-align:top}td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}tr.click{cursor:pointer}tr.click:hover{background:#f0f6ff}.hist{background:#fff;border:1px solid #d5ddd8;border-radius:10px;padding:10px;min-height:120px}.hist svg{width:100%;height:auto}figure{margin:0}figcaption{font-weight:600;font-size:13px;margin-bottom:4px}.cams{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}.cams button{width:100%;text-align:left;background:#fff;border:1px solid #d5ddd8;border-radius:8px;padding:6px 8px;font:inherit;cursor:pointer;display:flex;flex-direction:column}.cams small{color:#56636f}.player iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;background:#000}.layout{background:#fff;border:1px solid #d5ddd8;border-radius:10px}.layout th{background:#eef4f0}pre{background:#0e1a14;color:#d8efe0;border-radius:10px;padding:12px;font-size:12.5px;overflow:auto}footer{margin-top:40px;color:#56636f;font-size:13px}@media (max-width: 900px){.kpis{grid-template-columns:repeat(3,1fr)}.dgrid{grid-template-columns:1fr}}
