@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-zlEY3-7j.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BdPyuduI.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-0slToPcK.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-400-normal-CAV9EJEJ.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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-b8ymZRaE.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-yim3LC58.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+2074,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:500;src:url(/assets/be-vietnam-pro-vietnamese-500-normal-TANtbk6n.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-500-normal-C-u96TJj.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:500;src:url(/assets/be-vietnam-pro-latin-ext-500-normal-GzipT5gY.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-500-normal-Chf1C1N4.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:500;src:url(/assets/be-vietnam-pro-latin-500-normal-BFUaPJDQ.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-500-normal-CjE-N4Dw.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+2074,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-CrdqsjGL.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-BXI3hfff.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-Bb-tHBQ3.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-600-normal-BBmZhxSt.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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-2BKReCdn.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-xFlx60GF.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+2074,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-CWMsmEuB.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-700-normal-ByaPYulI.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-1FeCunIR.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-ext-700-normal-l58c5FJC.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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-IuSBdXyQ.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-700-normal-BaHweeu3.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--surface: #FAF5F5;--raised: #FFFFFF;--sunken: #F3EAEA;--line: #EBDADA;--ink: #1C1B1F;--ink-muted: #5F5A5A;--ink-subtle: #6E6767;--primary: #B71C24;--primary-pressed: #8E141A;--primary-soft: #FDECEC;--on-primary-soft: #8E141A;--success: #1E7B4B;--success-soft: #E3F3EA;--warning: #6B3A00;--warning-soft: #FFF4E3;--danger: #B3261E;--bar-ok: #1E7B4B;--bar-partial: #C98A00;--bar-down: #B3261E;--bar-none: #EBDADA;--shadow: 0 1px 2px rgba(28,27,31,.06), 0 4px 12px rgba(28,27,31,.06);--font: "Be Vietnam Pro", "Segoe UI", Roboto, system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--surface);color:var(--ink);font:15px/22px var(--font)}a{color:var(--primary)}a:hover{color:var(--primary-pressed)}h1{margin:0;font-size:26px;line-height:32px;font-weight:700}h2{margin:0;font-size:18px;line-height:24px;font-weight:600}p{margin:0}button{font:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.ms{width:1em;height:1em;font-size:20px;fill:currentColor;flex:none;display:inline-block;vertical-align:middle}.muted{color:var(--ink-muted)}.subtle{color:var(--ink-subtle);font-size:13px}.small{font-size:14px}.caption{font-size:13px;line-height:18px}.mono{font:13px/20px ui-monospace,Menlo,Consolas,monospace}.num{font-variant-numeric:tabular-nums}.top{background:var(--raised);border-bottom:1px solid var(--line)}.top-in{max-width:1280px;margin:0 auto;padding:0 24px;min-height:64px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.brand-mark{width:36px;height:36px;border-radius:12px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center}.brand b{display:block;font-size:17px;line-height:22px}.brand span{font-size:12px;line-height:16px;color:var(--ink-subtle)}.nav{display:flex;flex-wrap:wrap;gap:4px;flex-grow:1}.nav a{padding:10px 14px;border-radius:999px;color:var(--ink-muted);text-decoration:none}.nav a.on{background:var(--primary-soft);color:var(--on-primary-soft);font-weight:600}.who{display:flex;align-items:center;gap:12px}.avatar{width:36px;height:36px;border-radius:999px;background:var(--sunken);color:var(--ink-muted);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.main{max-width:1280px;margin:0 auto;padding:32px 24px 48px;display:flex;flex-direction:column;gap:24px}.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.head>div:first-child{display:flex;flex-direction:column;gap:4px}.crumb{font-size:14px;color:var(--ink-subtle);display:flex;align-items:center;gap:4px}.row{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.grow{flex:999 1 560px;min-width:0}.side{flex:1 1 320px;min-width:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.card{background:var(--raised);border-radius:16px;box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column;gap:12px;min-width:0}.card-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}.stat-l{display:flex;align-items:center;gap:8px;color:var(--ink-muted);font-size:14px}.stat-v{font-size:30px;line-height:36px;font-weight:700}.btn{height:44px;padding:0 16px;border-radius:12px;border:1px solid var(--line);background:var(--raised);color:var(--ink);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none}.btn:hover{color:var(--ink);background:var(--sunken)}.btn-primary{height:52px;padding:0 20px;border-radius:16px;border:0;background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-pressed);color:#fff}.btn:disabled{opacity:.4;cursor:default}.chip{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--raised);color:var(--ink-muted);font-size:14px;font-weight:600;cursor:pointer}.chip.on{background:var(--primary-soft);border-color:var(--primary-soft);color:var(--on-primary-soft)}.seg{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--sunken)}.seg button{height:36px;min-width:64px;padding:0 14px;border-radius:999px;border:0;background:transparent;color:var(--ink-muted);font-size:14px;font-weight:600;cursor:pointer}.seg button.on{background:var(--raised);color:var(--ink)}.pill{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.pill .ms{font-size:16px}.s-ok{background:var(--success-soft);color:var(--success)}.s-down{background:var(--primary-soft);color:var(--danger)}.s-warn{background:var(--warning-soft);color:var(--warning)}.s-off,.s-pending,.s-paused,.s-na{background:var(--sunken);color:var(--ink-muted)}.tag{font-size:12px;line-height:16px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--sunken);color:var(--ink-muted)}.banner{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px 20px;border-radius:16px}.banner.bad{background:var(--primary-soft);color:var(--on-primary-soft)}.banner.good{background:var(--success-soft);color:var(--success)}.banner.warn{background:var(--warning-soft);color:var(--warning)}.item{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:12px;border:1px solid var(--line);color:var(--ink);text-decoration:none}.item:hover{color:var(--ink);background:var(--surface)}.item-b{display:flex;flex-direction:column;gap:4px;flex-grow:1;min-width:0}.item-t{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:600}.clip{overflow:hidden;text-overflow:ellipsis}.tbl-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--ink-subtle);font-size:13px;font-weight:600;padding:8px 12px;white-space:nowrap}td{padding:12px;border-top:1px solid var(--line);vertical-align:middle}.r{text-align:right}.site-link{display:flex;flex-direction:column;text-decoration:none;color:var(--ink)}.site-link b{font-weight:600}.site-link span{font-size:13px;color:var(--ink-subtle)}.bars{display:flex;gap:2px;align-items:center}.bars i{flex:1 1 0;min-width:2px;border-radius:2px}.bars.mini i{flex:0 0 4px;height:20px}.b-ok{background:var(--bar-ok)}.b-partial{background:var(--bar-partial)}.b-down{background:var(--bar-down)}.b-none{background:var(--bar-none)}.chart{position:relative;height:220px;display:flex;align-items:flex-end;gap:3px;padding-top:12px;border-bottom:1px solid var(--line)}.chart i{flex:1 1 0;min-width:2px;border-radius:3px 3px 0 0;background:var(--primary)}.chart i.slow{background:var(--bar-partial)}.chart i.none{background:transparent}.thr{position:absolute;left:0;right:0;border-top:2px dashed var(--warning)}.thr span{position:absolute;right:0;top:-22px;font-size:12px;font-weight:600;color:var(--warning);background:var(--warning-soft);padding:0 8px;border-radius:999px}.axis{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-subtle)}.kv{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}.kv span:first-child{color:var(--ink-subtle)}.kv span:last-child{font-weight:600;text-align:right;overflow-wrap:anywhere}.ev{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.ev>div{display:flex;flex-direction:column;gap:2px;min-width:0}.code{margin:0;padding:12px 14px;border-radius:8px;background:var(--sunken);font:13px/20px ui-monospace,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.box{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:12px;border:1px solid var(--line)}.tl{display:flex;gap:12px}.tl-dot{display:flex;flex-direction:column;align-items:center}.tl-dot i{width:12px;height:12px;border-radius:999px;margin-top:5px}.tl-dot b{width:2px;flex-grow:1;background:var(--line)}.tl-b{display:flex;flex-direction:column;padding-bottom:16px;min-width:0;overflow-wrap:anywhere}.empty{padding:24px;text-align:center;color:var(--ink-subtle)}.toast{padding:12px;border-radius:12px;background:var(--success-soft);color:var(--success);font-size:14px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login form{width:100%;max-width:400px;background:var(--raised);border-radius:24px;box-shadow:var(--shadow);padding:32px;display:flex;flex-direction:column;gap:16px}label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}input{height:52px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:var(--raised);font:inherit;font-weight:400;color:var(--ink)}.err{display:flex;gap:8px;align-items:center;padding:12px;border-radius:12px;background:var(--primary-soft);color:var(--on-primary-soft);font-size:14px}.status{max-width:880px;margin:0 auto;padding:48px 24px;display:flex;flex-direction:column;gap:24px}.status-hero{display:flex;align-items:center;gap:16px;padding:24px;border-radius:24px}.status-hero .ms{font-size:40px}.st-item{display:flex;flex-direction:column;gap:8px;padding:14px 0;border-top:1px solid var(--line)}.st-item .bars i{height:28px}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f1a1a66;display:flex;align-items:flex-start;justify-content:center;padding:32px 16px;z-index:50;overflow-y:auto}.modal{width:100%;max-width:640px;margin:auto 0;gap:16px}.modal-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.modal-f{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.form2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px 16px}.hint{font-size:13px;line-height:18px;font-weight:400;color:var(--ink-subtle)}select,textarea{padding:12px 14px;border-radius:8px;border:1px solid var(--line);background:var(--raised);font:inherit;font-weight:400;color:var(--ink)}select{height:52px}textarea{min-height:88px;resize:vertical}input:disabled{background:var(--sunken);color:var(--ink-muted)}.check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400;cursor:pointer}.check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--primary);flex:none}.check b{font-weight:600;display:block}details.more>summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--ink-muted);padding:4px 0}details.more[open]>summary{margin-bottom:12px}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:var(--primary-soft);color:var(--danger)}.btn-danger.solid{background:var(--danger);color:#fff;border:0}.btn-danger.solid:hover{background:var(--primary-pressed);color:#fff}.ok-msg{display:flex;gap:8px;align-items:center;padding:12px;border-radius:12px;background:var(--success-soft);color:var(--success);font-size:14px}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 6px 0 12px;border-radius:999px;background:var(--sunken);font-size:14px}.tag button{width:24px;height:24px;border:0;border-radius:999px;background:transparent;color:var(--ink-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.tag button:hover{background:var(--line)}.log{display:flex;flex-direction:column}.log>div{display:grid;grid-template-columns:150px 1fr;gap:4px 16px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}.log>div:first-child{border-top:0}@media (max-width: 600px){.log>div{grid-template-columns:1fr}.modal-bg{padding:16px 8px}}@media (max-width: 600px){.main{padding:24px 16px 40px}.top-in{padding:8px 16px}.stat-v{font-size:26px}}
