@font-face{font-family:bai;src:url(../media/BaiJamjuree_Medium-s.p.0wrul79edng-b.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:bai;src:url(../media/BaiJamjuree_SemiBold-s.p.0pnzznqqwggqf.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:bai;src:url(../media/BaiJamjuree_Bold-s.p.04y5yz1gx-1o6.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:bai Fallback;src:local(Arial);ascent-override:94.76%;descent-override:23.69%;line-gap-override:0.0%;size-adjust:105.53%}.bai_24d96a11-module__Cj_HkW__className{font-family:bai,bai Fallback}.bai_24d96a11-module__Cj_HkW__variable{--font-bai:"bai", "bai Fallback"}
@font-face{font-family:plexThai;src:url(../media/IBMPlexSansThai_Regular-s.p.18r7lrk2p9py9.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:plexThai;src:url(../media/IBMPlexSansThai_Medium-s.p.0qiuh81ilub34.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:plexThai;src:url(../media/IBMPlexSansThai_SemiBold-s.p.2oekx309xbdki.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:plexThai Fallback;src:local(Arial);ascent-override:110.35%;descent-override:52.8%;line-gap-override:0.0%;size-adjust:101.13%}.plexthai_69ed4462-module__5mGhpW__className{font-family:plexThai,plexThai Fallback}.plexthai_69ed4462-module__5mGhpW__variable{--font-plex-thai:"plexThai", "plexThai Fallback"}
@font-face{font-family:plexMono;src:url(../media/IBMPlexMono_Regular-s.p.0kki4co0krhht.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:plexMono;src:url(../media/IBMPlexMono_Medium-s.p.0inhovbczjvgi.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:plexMono;src:url(../media/IBMPlexMono_SemiBold-s.p.234favlphgxyj.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:plexMono Fallback;src:local(Arial);ascent-override:77.95%;descent-override:20.91%;line-gap-override:0.0%;size-adjust:131.49%}.plexmono_574f71b9-module__26WqNW__className{font-family:plexMono,plexMono Fallback}.plexmono_574f71b9-module__26WqNW__variable{--font-plex-mono:"plexMono", "plexMono Fallback"}
.cbm{--ink:#16202b;--ink-2:#41505e;--ink-3:#7a8794;--paper:#e6eaee;--panel:#fff;--rule:#cbd3da;--rail:#2e3a46;--line-red:#b3202c;--ok:#1e8e5a;--warn:#e09400;--poor:#e2600f;--fault:#d93025;--off:#93a0ac;--ok-bg:#e4f3eb;--warn-bg:#fcf1dc;--poor-bg:#fbe8dc;--fault-bg:#fbe6e4;--off-bg:#edf0f3;--r:10px;--shadow:0 1px 2px #16202b0f, 0 6px 18px #16202b0f;background:var(--paper);background-image:linear-gradient(var(--rule) 1px, transparent 1px), linear-gradient(90deg, var(--rule) 1px, transparent 1px);color:var(--ink);font-family:var(--font-plex-thai), "Segoe UI", sans-serif;-webkit-font-smoothing:antialiased;background-position:-1px -1px;background-size:56px 56px;min-height:100vh;font-size:14px;line-height:1.55}.cbm *{box-sizing:border-box}.cbm .wrap{max-width:1280px;margin:0 auto;padding:20px 20px 56px}.cbm .mono{font-family:var(--font-plex-mono), ui-monospace, monospace;font-variant-numeric:tabular-nums}.cbm h1,.cbm h2,.cbm h3{font-family:var(--font-bai), var(--font-plex-thai), sans-serif;letter-spacing:-.01em;margin:0}.cbm .topbar{background:var(--panel);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:14px;padding:14px 18px;display:flex}.cbm .badge-line{background:var(--line-red);color:#fff;font-family:var(--font-bai), sans-serif;letter-spacing:.04em;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 5px;font-size:12px;font-weight:600;display:inline-flex}.cbm .badge-line:before{content:"";opacity:.9;background:#fff;border-radius:50%;width:7px;height:7px}.cbm .topbar h1{font-size:19px;font-weight:600}.cbm .topbar .sub{color:var(--ink-3);margin-top:1px;font-size:12.5px}.cbm .topbar .spacer{flex:1}.cbm .clock{text-align:right}.cbm .clock .t{letter-spacing:.02em;font-size:19px;font-weight:600}.cbm .clock .d{color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-size:11.5px}.cbm .live{color:var(--ink-2);border:1px solid var(--rule);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:7px;padding:5px 12px;font-family:inherit;font-size:12px;display:inline-flex}.cbm .live .pip{background:var(--ok);border-radius:50%;width:8px;height:8px;animation:2s infinite cbm-blip}.cbm .live[data-on=false] .pip{background:var(--off);animation:none}@keyframes cbm-blip{0%,to{opacity:1}50%{opacity:.25}}.cbm .schematic{background:var(--panel);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:14px;padding:14px 8px 6px;overflow-x:auto}.cbm .schematic .cap{color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:12px;padding:0 12px 6px;font-size:11.5px;display:flex}.cbm .schematic .legend-lines{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:18px;padding:2px 12px 10px;font-size:12px;display:flex}.cbm .schematic .legend-lines span{align-items:center;gap:7px;display:inline-flex}.cbm .schematic .legend-lines i{border-radius:2px;flex:none;width:20px;height:4px}.cbm .schematic .legend-lines .hint{color:var(--ink-3);margin-left:auto}.cbm .schematic svg{width:100%;min-width:1000px;height:auto;display:block}.cbm .node{cursor:pointer}.cbm .node .hit{fill:#0000}.cbm .node:hover .lbl,.cbm .node.sel .lbl{fill:var(--ink)}.cbm .node.sel .ring{opacity:1}.cbm .bar{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.cbm .tile{background:var(--panel);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow);cursor:pointer;text-align:left;font:inherit;color:inherit;flex:150px;padding:11px 14px;transition:border-color .15s,transform .15s}.cbm .tile:hover{transform:translateY(-1px)}.cbm .tile[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink), var(--shadow)}.cbm .tile .n{font-family:var(--font-plex-mono), monospace;font-size:26px;font-weight:600;line-height:1.1}.cbm .tile .l{color:var(--ink-2);align-items:center;gap:6px;margin-top:2px;font-size:12px;display:flex}.cbm .dot{border-radius:50%;flex:none;width:9px;height:9px}.cbm .d-ok{background:var(--ok)}.cbm .d-warn{background:var(--warn)}.cbm .d-poor{background:var(--poor)}.cbm .d-fault{background:var(--fault)}.cbm .d-off{background:var(--off)}.cbm .grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-bottom:16px;display:grid}.cbm .card{background:var(--panel);border:1px solid var(--rule);border-left:4px solid var(--off);border-radius:var(--r);box-shadow:var(--shadow);cursor:pointer;padding:13px 15px 11px;transition:transform .16s,box-shadow .16s;animation:.45s both cbm-rise}@keyframes cbm-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.cbm .card:hover{transform:translateY(-2px);box-shadow:0 2px 4px #16202b14,0 12px 26px #16202b1a}.cbm .card.sel{box-shadow:0 0 0 2px var(--ink), var(--shadow)}.cbm .card.s-ok{border-left-color:var(--ok)}.cbm .card.s-warn{border-left-color:var(--warn)}.cbm .card.s-poor{border-left-color:var(--poor)}.cbm .card.s-fault{border-left-color:var(--fault)}.cbm .card.s-off{border-left-color:var(--off);opacity:.82}.cbm .card .hd{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.cbm .card .id{font-family:var(--font-plex-mono), monospace;color:var(--ink-3);letter-spacing:.08em;font-size:12px}.cbm .card .nm{font-family:var(--font-bai), sans-serif;margin-top:1px;font-size:16px;font-weight:600}.cbm .card .loc{color:var(--ink-2);align-items:center;gap:7px;margin-top:3px;font-size:12.5px;display:flex}.cbm .linechip{border-radius:2px;flex:none;width:9px;height:9px}.cbm .card .kmt{font-family:var(--font-plex-mono), monospace;color:var(--ink-3);font-size:11.5px}.cbm .pill{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 4px;font-size:12px;font-weight:600;display:inline-flex}.cbm .p-ok{color:#146340;background:var(--ok-bg)}.cbm .p-warn{color:#8a5a00;background:var(--warn-bg)}.cbm .p-poor{color:#94400a;background:var(--poor-bg)}.cbm .p-fault{color:#98211a;background:var(--fault-bg)}.cbm .p-off{color:#59646f;background:var(--off-bg)}.cbm .p-fault .dot{animation:1.2s infinite cbm-blip}.cbm .link{color:var(--ink-3);align-items:center;gap:6px;margin-top:9px;font-size:11.5px;display:flex}.cbm .link .dot{width:7px;height:7px}.cbm .metrics{border-top:1px dashed var(--rule);grid-template-columns:repeat(3,1fr);gap:8px;margin-top:11px;padding-top:10px;display:grid}.cbm .metrics div{min-width:0}.cbm .metrics .k{color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.cbm .metrics .v{font-family:var(--font-plex-mono), monospace;font-size:15px;font-weight:600;line-height:1.35}.cbm .metrics .v small{color:var(--ink-3);margin-left:2px;font-size:10.5px;font-weight:400}.cbm .metrics .v.hi{color:var(--fault)}.cbm .metrics .v.md{color:var(--warn)}.cbm .spark{margin-top:10px}.cbm .spark svg{width:100%;height:38px;display:block}.cbm .detail{background:var(--panel);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}.cbm .detail .dhd{border-bottom:1px solid var(--rule);background:#fafbfc;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 18px;display:flex}.cbm .detail .dhd h2{font-size:17px;font-weight:600}.cbm .detail .dhd .id{font-family:var(--font-plex-mono), monospace;color:var(--ink-3);letter-spacing:.08em;font-size:12px}.cbm .charts{grid-template-columns:1fr 1fr;gap:0;display:grid}.cbm .chart{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:16px 18px}.cbm .chart:nth-child(2n){border-right:none}.cbm .chart h3{font-size:13.5px;font-weight:600}.cbm .chart .note{color:var(--ink-3);margin:2px 0 10px;font-size:11.5px}.cbm .chart svg{width:100%;height:auto;display:block}.cbm .chart .empty{border:1px dashed var(--rule);text-align:center;color:var(--ink-3);border-radius:8px;padding:40px 16px;font-size:12.5px}.cbm .legend{color:var(--ink-2);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:11.5px;display:flex}.cbm .legend span{align-items:center;gap:6px;display:inline-flex}.cbm .legend i{border-top:2px solid;width:14px;height:0;display:inline-block}.cbm .log{padding:16px 18px}.cbm .log h3{margin-bottom:8px;font-size:13.5px;font-weight:600}.cbm table{border-collapse:collapse;width:100%;font-size:12.5px}.cbm th{text-align:left;color:var(--ink-3);letter-spacing:.07em;text-transform:uppercase;border-bottom:1px solid var(--rule);padding:0 10px 6px 0;font-size:10.5px;font-weight:600}.cbm td{vertical-align:top;border-bottom:1px solid #eef1f4;padding:7px 10px 7px 0}.cbm td.time{font-family:var(--font-plex-mono), monospace;color:var(--ink-3);white-space:nowrap}.cbm .tag{white-space:nowrap;border-radius:5px;padding:1px 7px 2px;font-size:11px;font-weight:600}.cbm .t-ok{background:var(--ok-bg);color:#146340}.cbm .t-warn{background:var(--warn-bg);color:#8a5a00}.cbm .t-fault{background:var(--fault-bg);color:#98211a}.cbm .t-info{background:var(--off-bg);color:#59646f}.cbm .foot{color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:18px;font-size:11.5px;display:flex}.cbm :focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.cbm .panel{background:var(--panel);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:14px;padding:16px 18px}.cbm .panel .scroll-x{overflow-x:auto}.cbm .aform input,.cbm .aform select{font:inherit;color:var(--ink);border:1px solid var(--rule);background:#fff;border-radius:7px;width:100%;min-width:0;padding:5px 8px}.cbm .aform input.mono,.cbm .aform select.mono{font-family:var(--font-plex-mono), monospace}.cbm .aform td{min-width:90px;padding-right:8px}.cbm .aform td.narrow{min-width:64px}.cbm .aform td.wide{min-width:150px}.cbm .btn{font:inherit;border:1px solid var(--rule);color:var(--ink-2);cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;padding:5px 12px;font-size:12.5px;font-weight:600}.cbm .btn:hover{border-color:var(--ink);color:var(--ink)}.cbm .btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}.cbm .btn-primary:hover{color:#fff;opacity:.9}.cbm .btn-danger{color:#98211a;background:#fff;border-color:#eac5c1}.cbm .btn-danger:hover{border-color:var(--fault);color:var(--fault)}.cbm .btn:disabled{opacity:.5;cursor:default}.cbm .row-msg{white-space:nowrap;font-size:11.5px}.cbm .row-msg.err{color:var(--fault)}.cbm .row-msg.okmsg{color:var(--ok)}.cbm .phd{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:baseline;gap:12px;padding:14px 18px 10px;display:flex}.cbm .phd h2{font-size:16px;font-weight:600}.cbm .phd .sub{color:var(--ink-3);font-size:12px}.cbm .phd .spacer{flex:1}.cbm .chips{flex-wrap:wrap;gap:7px;display:flex}.cbm .chip{font:inherit;border:1px solid var(--rule);background:var(--panel);color:var(--ink-2);cursor:pointer;border-radius:999px;padding:5px 13px;font-size:12.5px;transition:all .15s}.cbm .chip:hover{border-color:var(--line-red)}.cbm .chip[aria-pressed=true]{background:var(--line-red);border-color:var(--line-red);color:#fff}.cbm .trendbody{grid-template-columns:1fr 250px;display:grid}.cbm .trendmain{border-right:1px solid var(--rule);min-width:0;padding:16px 18px}.cbm .trendmain svg{width:100%;height:auto;display:block}.cbm .stats{flex-direction:column;gap:12px;padding:16px 18px;display:flex}.cbm .stat .k{color:var(--ink-3);letter-spacing:.03em;font-size:11px}.cbm .stat .v{font-family:var(--font-plex-mono), monospace;font-size:21px;font-weight:600;line-height:1.2}.cbm .stat .v small{color:var(--ink-3);margin-left:3px;font-size:11px;font-weight:400}.cbm .verdict{background:var(--paper);border:1px solid var(--rule);color:var(--ink-2);border-radius:10px;margin-top:auto;padding:11px 13px;font-size:12.5px}.cbm .verdict b{font-family:var(--font-bai), sans-serif;color:var(--ink);margin-bottom:3px;font-size:13px;display:block}@media (max-width:820px){.cbm .charts{grid-template-columns:1fr}.cbm .chart{border-right:none}.cbm .trendbody{grid-template-columns:1fr}.cbm .trendmain{border-right:none;border-bottom:1px solid var(--rule)}}@media (prefers-reduced-motion:reduce){.cbm *{transition:none!important;animation:none!important}}
