@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-vietnamese-400-normal-BxGuknnG.woff2) format("woff2"),url(/assets/work-sans-vietnamese-400-normal-DFZk_KN_.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:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-ext-400-normal-zfQnhXzv.woff2) format("woff2"),url(/assets/work-sans-latin-ext-400-normal-j7TZlk-s.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:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-400-normal-jUejSri3.woff2) format("woff2"),url(/assets/work-sans-latin-400-normal-DE1_0GuN.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:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-vietnamese-500-normal-Czn2Xkog.woff2) format("woff2"),url(/assets/work-sans-vietnamese-500-normal-90nhZfxs.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:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-latin-ext-500-normal-CAKEIVkc.woff2) format("woff2"),url(/assets/work-sans-latin-ext-500-normal-CW9ss9Cz.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:Work Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/work-sans-latin-500-normal-BKGnScDy.woff2) format("woff2"),url(/assets/work-sans-latin-500-normal-BmdXWF6_.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:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-vietnamese-600-normal-DizFELYt.woff2) format("woff2"),url(/assets/work-sans-vietnamese-600-normal-ue5fzGW6.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:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-latin-ext-600-normal-DNiHHggD.woff2) format("woff2"),url(/assets/work-sans-latin-ext-600-normal-B1NFRnx8.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:Work Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/work-sans-latin-600-normal-DB-2V89X.woff2) format("woff2"),url(/assets/work-sans-latin-600-normal-Cg-NlmS7.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:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-vietnamese-700-normal-CqjC4WOy.woff2) format("woff2"),url(/assets/work-sans-vietnamese-700-normal-BYAoORCv.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:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-latin-ext-700-normal-Bc0iTajH.woff2) format("woff2"),url(/assets/work-sans-latin-ext-700-normal-BP8nCPzd.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:Work Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/work-sans-latin-700-normal-CEeo_t6l.woff2) format("woff2"),url(/assets/work-sans-latin-700-normal-mDs79oer.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{--text: #121212;--heading: #0f1229;--muted: #4b568b;--subtle: #6b75a8;--surface: #e9ecff;--background: #dbdfff;--card: #fff;--border: #dbdfff;--primary: #1d31ec;--primary-hover: #18259b;--primary-soft: #e9ecff;--focus: #4c5dfe;--ok: #007300;--ok-bg: #e6f6e6;--warn: #6b5800;--warn-bg: #f9f7cf;--bad: #c41d23;--bad-bg: #fdeaea;--radius: 8px;--sidebar-width: 232px;color-scheme:light}*{box-sizing:border-box}body{margin:0;font:14px/1.5 Work Sans,system-ui,sans-serif;background:var(--surface);color:var(--text)}body.no-scroll{overflow:hidden}main{width:100%;max-width:1200px;margin:0 auto;padding:24px;min-width:0}h1{margin:0 0 16px;font-size:24px;font-weight:600;color:var(--heading)}a{color:var(--primary)}a:hover{color:var(--primary-hover)}.muted{color:var(--muted);font-weight:400}p.error{margin:0 0 12px;padding:10px 14px;border:1px solid #f5c2c4;border-radius:var(--radius);background:var(--bad-bg);color:var(--bad)}.layout{min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:16px;padding:16px 12px;background:var(--card);border-right:1px solid var(--border)}.sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.brand{display:block;border-radius:var(--radius)}.brand img{display:block;height:40px;width:auto}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{padding:8px 12px;border-radius:var(--radius);color:var(--text);font-weight:500;text-decoration:none}.sidebar nav a:hover{background:#f5f6ff;color:var(--primary)}.sidebar nav a.active{background:var(--primary-soft);color:var(--primary)}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding:12px 8px 0;border-top:1px solid var(--border)}.who{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar{display:none;position:sticky;top:0;z-index:10;align-items:center;gap:8px;height:52px;padding:0 8px;background:var(--card);border-bottom:1px solid var(--border)}.topbar-title{font-weight:600;color:var(--heading)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;background:transparent;color:var(--heading)}.icon-button:hover{background:var(--primary-soft);color:var(--primary)}.scrim{position:fixed;inset:0;z-index:20;background:#0f122959}@media(min-width:900px){.layout{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh}.sidebar .close,.scrim{display:none}}@media(max-width:899px){.topbar{display:flex}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:min(280px,85vw);box-shadow:0 8px 32px #0f122933;transform:translate(-100%);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s}.sidebar.open{transform:none;visibility:visible;transition:transform .2s ease}main{padding:16px}h1{font-size:21px}}@media(prefers-reduced-motion:reduce){.sidebar,.sidebar.open{transition:none}}.button,button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 16px;border:1px solid var(--primary);border-radius:var(--radius);background:var(--primary);color:#fff;font:inherit;font-weight:500;text-decoration:none;white-space:nowrap;cursor:pointer}.button:hover,button:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.button.secondary,button.secondary{background:var(--card);color:var(--primary)}.button.secondary:hover,button.secondary:hover{background:var(--primary-soft);color:var(--primary-hover)}button.secondary[aria-expanded=true]{background:var(--primary-soft)}button:disabled{opacity:.6;cursor:default}.icon-button,.icon-button:hover{min-height:0;border:0}.button:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}input[type=search],input[type=number]{min-width:0;min-height:38px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--text);font:inherit}input:focus{border-color:var(--focus);outline:none}.page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.page-head h1{margin:0;display:flex;align-items:baseline;gap:10px}.count{padding:1px 10px;border-radius:9999px;background:var(--card);border:1px solid var(--border);color:var(--muted);font-size:13px;font-weight:500}.panel{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;padding:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.search{display:flex;gap:8px}.search input{flex:1}.sync{margin:0 0 12px}.panel .sync{margin:0}.page-actions{display:flex;flex-wrap:wrap;gap:8px}.panel.export{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:8px 12px}.export h2{flex-basis:100%;margin:0;font-size:15px;font-weight:600;color:var(--heading)}.export label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:13px}.export input{width:9em}.export .hint{flex-basis:100%;font-size:13px}.table-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse}th,td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);overflow-wrap:anywhere}th{background:#f5f6ff;color:var(--muted);font-weight:600;white-space:nowrap}tbody tr:hover td{background:#f8f9ff}tbody tr:last-child td{border-bottom:0}td.empty{padding:24px 14px;text-align:center}.nowrap{white-space:nowrap}td.truncate .clip{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.num{text-align:right;font-variant-numeric:tabular-nums}.loading{opacity:.6}@media(max-width:640px){table.cards thead{display:none}table.cards,table.cards tbody,table.cards tr,table.cards td{display:block;width:100%}table.cards tr{display:flex;flex-direction:column;padding:12px 14px;border-bottom:1px solid var(--border)}table.cards tbody tr:last-child{border-bottom:0}table.cards tbody tr:hover td{background:none}table.cards td{display:flex;gap:12px;padding:2px 0;border:0}table.cards td:before{content:attr(data-label);flex:0 0 76px;color:var(--muted);font-size:13px;font-family:Work Sans,system-ui,sans-serif}table.cards td.truncate .clip{max-width:none;white-space:normal}table.cards td.primary-cell{order:-1;padding-bottom:4px;font-weight:600;color:var(--heading)}table.cards td:empty{display:none}table.cards td.primary-cell:before{content:none}table.cards td.empty{display:block;padding:12px 0}table.cards td.empty:before{content:none}}.tag{display:inline-block;padding:1px 10px;border-radius:9999px;white-space:nowrap;background:var(--primary-soft);color:var(--muted);font-size:12px;font-weight:500}.tag.ok{background:var(--ok-bg);color:var(--ok)}.tag.warn{background:var(--warn-bg);color:var(--warn)}.tag.bad{background:var(--bad-bg);color:var(--bad)}.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;align-items:start}.card{max-width:420px;margin:64px auto;padding:32px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.card h1{margin-bottom:12px}@media(max-width:640px){.card{margin:24px auto;padding:24px}}.chart-panel h2{margin:0;font-size:16px;font-weight:600;color:var(--heading)}.chart-panel .subtitle{margin:2px 0 0;font-size:13px}.chart{width:100%;height:320px}@media(max-width:640px){.chart{height:260px}}
