html:root{--accent:#a21b62;--accent-strong:#6e1244;--accent-soft:#faf0f5;--accent-line:#ebcadc;--accent-tint:#fffcfd;--accent-skel:#f5e3ec;--accent-skel-hi:#fcf4f8;--bg-page:#fafafa;--bg-card:#fff;--bg-muted:#f4f4f5;--bg-subtle:#fafafa;--canvas:#e7e7e4;--line:#e4e4e7;--line-soft:#f4f4f5;--line-strong:#d4d4d8;--fg-1:#09090b;--fg-1b:#27272a;--fg-2:#3f3f46;--fg-3:#52525b;--fg-4:#71717a;--fg-5:#a1a1aa;--fg-ink:#292524;--fg-stone:#57534e;--ok:#15803d;--ok-soft:#f0fdf4;--ok-line:#bbf7d0;--wait:#92400e;--wait-soft:#fffbeb;--wait-line:#fde68a;--warn:#a16207;--warn-soft:#fefce8;--warn-line:#fde68a;--warn-box:#fef6dc;--warn-box-line:#e5b84b;--warn-box-fg:#7a5a00;--bad:#b91c1c;--bad-soft:#fef2f2;--bad-line:#fecaca;--bad-tint:#fffbfb;--proj:#0f766e;--proj-soft:#f0fdfa;--proj-line:#99f6e4;--info:#1d4ed8;--info-soft:#eff6ff;--info-line:#bfdbfe;--font-sans:"Be Vietnam Pro", ui-sans-serif, system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--fs-label:9.5px;--fs-xs:11px;--fs-sm:12px;--fs-ui:12.5px;--fs-body:13px;--fs-md:13.5px;--fs-lg:15px;--fs-title:18px;--fs-h2:22px;--fs-h1:30px;--r-xs:4px;--r-chip:6px;--r-btn-sm:7px;--r-btn:8px;--r-tile:10px;--r-block:12px;--r-dialog:12px;--r-sheet:14px;--r-media:6px;--r-pill:999px;--nav-w:236px;--topbar-h:54px;--row-h:48px;--head-h:36px;--ctl-h:34px;--ctl-h-md:32px;--ctl-h-sm:28px;--hit-mobile:44px;--bp-nav:900px;--bp-dialog:640px;--shadow-pop:0 18px 40px -18px #09090b59;--shadow-dialog:0 24px 48px -18px #0000004d;--shadow-tip:0 2px 8px #00000040;--shadow-sheet:0 10px 30px #09090b14;--skel:#ececee;--skel-hi:#f9f9fa;--skel-dur:1.5s;--skel-faint:#f4f4f5;--skel-faint-hi:#fbfbfb;--skel-pink:#f2dce7;--skel-pink-hi:#fbf1f6;--skel-bg:#f2f2f3;--skel-bg-hi:#fafafa;--skel-bg-dur:1.8s;--skel-dark:#27272a;--skel-dark-hi:#3f3f46;--skel-warm:#ecebe8;--skel-warm-hi:#f7f6f4;--skel-static:#f0f0f1;--stale-opacity:.6;--picker-dim:.55;--t-wait:.2s;--t-hold:.4s;--t-slow:8s;--t-timeout:20s;--t-cache:5min;--t-debounce:.25s}.skl{background:linear-gradient(90deg, var(--skel) 0%, var(--skel) 40%, var(--skel-hi) 50%, var(--skel) 60%, var(--skel) 100%);animation:skl var(--skel-dur) linear infinite;background-size:300% 100%;border-radius:4px;display:block}.skl--faint{background-image:linear-gradient(90deg, var(--skel-faint) 0%, var(--skel-faint) 40%, var(--skel-faint-hi) 50%, var(--skel-faint) 60%, var(--skel-faint) 100%)}.skl--pink{background-image:linear-gradient(90deg, var(--skel-pink) 0%, var(--skel-pink) 40%, var(--skel-pink-hi) 50%, var(--skel-pink) 60%, var(--skel-pink) 100%)}.skl--bg{background-image:linear-gradient(90deg, var(--skel-bg) 0%, var(--skel-bg) 40%, var(--skel-bg-hi) 50%, var(--skel-bg) 60%, var(--skel-bg) 100%);animation-duration:var(--skel-bg-dur)}.skl--dark{background-image:linear-gradient(90deg, var(--skel-dark) 0%, var(--skel-dark) 40%, var(--skel-dark-hi) 50%, var(--skel-dark) 60%, var(--skel-dark) 100%)}.skl--warm{background-image:linear-gradient(90deg, var(--skel-warm) 0%, var(--skel-warm) 40%, var(--skel-warm-hi) 50%, var(--skel-warm) 60%, var(--skel-warm) 100%)}@keyframes skl{0%{background-position:100% 0}to{background-position:0 0}}.skl-wait{visibility:hidden}.is-stale{opacity:var(--stale-opacity);pointer-events:none;transition:opacity .15s linear}.load-bar{z-index:5;pointer-events:none;height:2px;position:absolute;top:0;left:0;right:0;overflow:hidden}.load-bar:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);width:40%;animation:1.1s linear infinite load-bar;position:absolute;top:0;bottom:0}@keyframes load-bar{0%{left:-40%}to{left:100%}}.spin{border:1.5px solid var(--line);border-top-color:var(--fg-4);border-radius:50%;flex:none;width:12px;height:12px;animation:.7s linear infinite spin;display:inline-block}.spin--white{border-color:#fff #fff6 #fff6}.spin--accent{border-color:var(--accent-line);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.img-in{animation:.2s ease-out img-in}@keyframes img-in{0%{opacity:.3}to{opacity:1}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.skl,.load-bar:before,.spin,.img-in{animation:none}.load-bar:before{left:30%}}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0}body{font-family:var(--font-sans);font-size:var(--fs-body);color:var(--fg-1);background:var(--bg-page);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:0 0;border:0;padding:0}button:not(:disabled):not([aria-disabled=true]),[role=button]:not([aria-disabled=true]),summary{cursor:pointer}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-strong)}.mono{font-family:var(--font-mono)}.label{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-5)}.muted{color:var(--fg-4)}.svg{flex:none;display:inline-block}.shell{background:var(--bg-page);height:100%;min-height:560px;display:flex;position:relative;overflow:hidden}.shell__side{width:var(--nav-w);border-right:1px solid var(--line);background:var(--bg-card);flex-direction:column;flex:none;min-height:0;display:flex}.shell__main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.topbar{height:var(--topbar-h);border-bottom:1px solid var(--line);background:var(--bg-card);flex:none;align-items:center;gap:12px;padding:0 20px;display:flex;overflow-x:auto}.crumb{font-size:var(--fs-ui);color:var(--fg-5);white-space:nowrap}.crumb--now{color:var(--fg-1);font-weight:500}.crumb-sep{font-size:var(--fs-ui);color:var(--line-strong)}.burger{border-radius:var(--r-btn);border:1px solid var(--line);justify-content:center;align-items:center;width:36px;height:36px;display:none}.page{flex-direction:column;flex:1;gap:14px;min-height:0;padding:20px;display:flex;overflow:auto}.page-head{align-items:flex-start;gap:16px;display:flex}.page-head h1{font-size:var(--fs-title);letter-spacing:-.01em;margin:0;font-weight:600}.page-head p{color:var(--fg-4);margin:4px 0 0;font-size:13px;line-height:1.55}.filterbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filterbar .grow{flex:1}.shell--mobile .shell__side{z-index:40;transition:transform .2s;position:absolute;inset:0 auto 0 0;transform:translate(-100%)}.shell--mobile.is-open .shell__side{transform:none}.shell--mobile.is-open .scrim{display:block}.shell--mobile .burger{display:flex}.shell--mobile .topbar{padding:0 16px}.shell--mobile .page{padding:16px}.scrim{z-index:30;background:#09090b59;display:none;position:absolute;inset:0}@media (width<=900px){.shell:not(.shell--fixed) .shell__side{z-index:40;position:absolute;inset:0 auto 0 0;transform:translate(-100%)}.shell:not(.shell--fixed) .burger{display:flex}}.side-brand{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;padding:14px 16px 12px;display:flex}.side-brand__mark{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:7px;width:26px;height:26px}.side-brand__name{font-size:13px;font-weight:600}.side-brand__sub{font-family:var(--font-mono);letter-spacing:.12em;color:var(--fg-5);text-transform:uppercase;font-size:9px}.side-brand--link{color:inherit;cursor:pointer;text-decoration:none;position:relative}.side-brand--link:hover,.side-brand--link.is-hover,.side-brand--link:visited{color:inherit;text-decoration:none}.side-brand--link:focus-visible{outline:2px solid var(--accent-line);outline-offset:-2px}.tip--static{position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%)}.nav{flex-direction:column;flex:1;gap:13px;min-height:0;padding:12px 9px;display:flex;overflow-y:auto}.nav__group{flex-direction:column;gap:2px;display:flex}.nav__head{font-family:var(--font-mono);letter-spacing:.12em;color:var(--fg-5);text-transform:uppercase;margin:0;padding:4px 10px 6px;font-size:9px}.nav__item{border-radius:var(--r-btn-sm);color:var(--fg-3);text-align:left;align-items:center;gap:10px;width:100%;padding:7px 10px;font-size:13px;line-height:1.25;display:flex}.nav__item:hover{background:var(--bg-page)}.nav__item.is-on{background:var(--accent-soft);color:var(--accent-strong);font-weight:500}.nav__item.is-parent-on{color:var(--accent-strong);font-weight:500}.nav__item .svg{opacity:.85}.nav__text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pill{font-family:var(--font-mono);background:var(--bg-muted);color:var(--fg-3);border-radius:5px;padding:1px 6px;font-size:10px}.is-on>.pill{background:var(--accent);color:#fff}.nav__sub{border-left:1px solid var(--line-soft);flex-direction:column;gap:1px;margin:1px 0 4px 17px;padding-left:8px;display:flex}.nav__subitem{border-radius:var(--r-chip);height:28px;font-size:var(--fs-ui);color:var(--fg-4);white-space:nowrap;text-align:left;align-items:center;width:100%;padding:0 10px;display:flex}.nav__subitem:hover{background:var(--bg-page)}.nav__subitem.is-on{background:var(--accent-soft);color:var(--accent-strong);font-weight:500}.nav__rolehead{font-family:var(--font-mono);letter-spacing:.12em;color:var(--fg-3);text-align:left;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;width:100%;padding:8px 10px 3px;font-size:9px;display:flex}.nav__rolehead--light{color:var(--fg-5)}.nav__rolehead--locked{color:var(--accent-strong);cursor:default}.nav__rolehead .caret{width:8px}.nav__rolehead .count{letter-spacing:0;color:var(--fg-5);margin-left:auto}.side-user{border-top:1px solid var(--line-soft);align-items:center;gap:10px;padding:12px 14px;display:flex}.avatar{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-strong);border:1px solid var(--accent-line);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.side-user__name{font-size:12.5px;font-weight:500}.side-user__role{color:var(--fg-4);font-size:11px}.scope{border-bottom:1px solid var(--line-soft);flex-direction:column;gap:5px;padding:11px 12px 12px;display:flex}.scope__label{font-family:var(--font-mono);letter-spacing:.12em;color:var(--fg-5);padding:0 2px;font-size:9px}.scope__box{height:var(--ctl-h);white-space:nowrap;border-radius:var(--r-btn);border:1px solid var(--accent-line);background:var(--accent-soft);font-size:var(--fs-ui);color:var(--accent-strong);text-align:left;align-items:center;width:100%;padding:0 30px 0 31px;font-weight:500;display:flex;position:relative;overflow:hidden}.scope__box>.svg:first-child{position:absolute;left:10px}.scope__box>.svg:last-child{position:absolute;right:10px}.scope__warn{color:var(--wait);padding:0 2px;font-size:11px;line-height:1.4}.warnbox{border-radius:var(--r-chip);border:1px solid var(--warn-box-line);background:var(--warn-box);color:var(--warn-box-fg);padding:4px 8px;font-size:11px;line-height:1.35}.inline-scope{border-radius:var(--r-btn);border:1px solid var(--line);height:32px;font-size:var(--fs-ui);white-space:nowrap;background:#fff;align-items:center;gap:8px;padding:0 10px;display:inline-flex}.pop{border-radius:var(--r-tile);border:1px solid var(--line);width:300px;max-width:calc(100vw - 24px);max-height:min(420px,70dvh);box-shadow:var(--shadow-pop);background:#fff;flex-direction:column;display:flex;position:relative;overflow:hidden}.pop__head{border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;padding:8px 12px;display:flex}.pop__list{flex-direction:column;min-height:0;padding:4px 0;display:flex;overflow-y:auto}.opt{text-align:left;align-items:center;gap:8px;width:100%;min-height:38px;padding:6px 12px;font-size:13px;display:flex}.opt:hover{background:var(--bg-page)}.opt.is-on{background:var(--accent-soft)}.opt.is-on .opt__name{color:var(--accent-strong);font-weight:500}.opt__check{text-align:center;width:16px;color:var(--accent);flex:none;font-size:12px}.opt__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.opt__meta{font-family:var(--font-mono);color:var(--fg-4);flex:none;font-size:10px}.opt__num{text-align:right;width:48px;font-family:var(--font-mono);color:var(--fg-2);flex:none;font-size:11px}.opt__num--zero{color:var(--bad)}.opt--warn .opt__name{color:var(--wait)}.opt__avatar{background:var(--bg-muted);width:22px;height:22px;color:var(--fg-3);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:10px;display:flex}.opt__code{font-family:var(--font-mono);color:var(--accent-strong);margin-left:auto;font-size:10.5px}.pop__foot{border-top:1px solid var(--line-soft);align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.pop__note{color:var(--fg-4);padding:6px 12px;font-size:11.5px}.pop__dim{opacity:var(--picker-dim)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field__label{color:var(--fg-2);font-size:12px;font-weight:500}.field__req{color:var(--bad)}.field__hint{color:var(--fg-5);font-size:11px}.field__err{color:var(--bad);font-size:11.5px}.input{border-radius:var(--r-btn);border:1px solid var(--line);width:100%;height:36px;font:inherit;color:var(--fg-1);background:#fff;outline:none;padding:0 10px;font-size:13px}.input:focus{border-color:var(--accent-line);box-shadow:0 0 0 2px var(--accent-soft)}.input--err{border-color:var(--bad-line)}textarea.input{resize:vertical;height:auto;padding:8px 10px;line-height:1.5}.search{height:var(--ctl-h);border-radius:var(--r-btn);border:1px solid var(--line);min-width:220px;color:var(--fg-5);background:#fff;align-items:center;padding:0 10px 0 32px;font-size:13px;display:flex;position:relative}.search>.svg{color:var(--fg-4);position:absolute;left:10px}.search>.spin{position:absolute;right:10px}.search input{font:inherit;width:100%;color:var(--fg-1);background:0 0;border:0;outline:0}.picker-box{border-radius:var(--r-btn);border:1px solid var(--line);text-align:left;background:#fff;align-items:center;gap:8px;width:100%;height:36px;padding:0 10px;font-size:13px;display:flex;position:relative}.picker-box .placeholder{color:var(--fg-5)}.picker-chip{border-radius:var(--r-chip);background:var(--accent-soft);border:1px solid var(--accent-line);height:26px;color:var(--accent-strong);align-items:center;gap:6px;padding:0 6px 0 8px;font-size:12.5px;display:inline-flex}.picker-chip .x{opacity:.6;font-size:14px}.btn{height:var(--ctl-h);border-radius:var(--r-btn);white-space:nowrap;flex:none;justify-content:center;align-items:center;gap:8px;padding:0 15px;font-size:13px;transition:background-color .15s;display:inline-flex}.btn--sm{height:32px;font-size:var(--fs-ui);border-radius:var(--r-btn-sm);padding:0 12px}.btn--xs{border-radius:var(--r-btn-sm);height:28px;padding:0 10px;font-size:12px}.btn--primary{background:var(--accent);color:#fff;font-weight:500}.btn--primary:hover{background:var(--accent-strong)}.btn--secondary{color:var(--fg-2);border:1px solid var(--line);background:#fff}.btn--secondary:hover{background:var(--bg-page)}.btn--danger{color:var(--bad);border:1px solid var(--bad-line);background:#fff}.btn--danger:hover{background:var(--bad-soft)}.btn--ok{background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok-line)}.btn--dark{background:var(--fg-ink);color:#fff;font-weight:500}.btn--accent-line{color:var(--accent);border:1px solid var(--accent-line);background:#fff}.btn[aria-disabled=true]:not([aria-busy=true]){background:var(--bg-muted);color:var(--fg-5);cursor:not-allowed;border-color:#0000}.btn[aria-busy=true]{cursor:progress;opacity:.85}.btn--mobile{height:var(--hit-mobile)}.ibtn{border-radius:var(--r-btn-sm);border:1px solid var(--line);width:32px;height:32px;color:var(--fg-2);background:#fff;flex:none;justify-content:center;align-items:center;display:inline-flex}.ibtn:hover{background:var(--bg-page)}.ibtn[aria-disabled=true]{border-color:var(--bg-muted);background:var(--bg-muted);color:var(--fg-5);cursor:not-allowed}.ibtn--sm{width:28px;height:28px}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{border-radius:var(--r-chip);white-space:nowrap;text-overflow:ellipsis;border:1px solid;align-items:center;gap:6px;max-width:100%;padding:2px 8px;font-size:11.5px;font-weight:500;display:inline-flex;overflow:hidden}.chip--draft{color:var(--fg-3);background:var(--bg-muted);border-color:var(--line)}.chip--wait{color:var(--wait);background:var(--wait-soft);border-color:var(--wait-line)}.chip--ok{color:var(--ok);background:var(--ok-soft);border-color:var(--ok-line)}.chip--bad{color:var(--bad);background:var(--bad-soft);border-color:var(--bad-line)}.chip--hidden{color:var(--fg-4);border-color:var(--line);background:#fff;border-style:dashed}.chip--info{color:var(--info);background:var(--info-soft);border-color:var(--info-line)}.chip__dot{background:currentColor;border-radius:50%;width:7px;height:7px}.code{font-family:var(--font-mono);color:var(--accent-strong);cursor:copy;border-radius:4px;padding:0 2px;font-size:11px}.code:hover{background:var(--accent-soft)}.code--muted{color:var(--fg-4)}.code.is-copied{background:var(--ok-soft);color:var(--ok)}.flag{border:1px solid;border-radius:5px;align-items:center;gap:3px;height:18px;padding:0 5px;font-size:10.5px;font-weight:600;display:inline-flex}.flag--expert{color:var(--accent-strong);background:var(--accent-soft);border-color:var(--accent-line)}.flag--proj{color:var(--proj);background:var(--proj-soft);border-color:var(--proj-line)}.flag--good{color:var(--ok);background:var(--ok-soft);border-color:var(--ok-line)}.flag--badflag{color:var(--bad);background:var(--bad-soft);border-color:var(--bad-line)}.card{border-radius:var(--r-block);border:1px solid var(--line);background:#fff}.card__head{border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;padding:12px 16px 11px;display:flex}.card__head .link{margin-left:auto;font-size:12px}.card__body{padding:12px 16px}.tbl{border-radius:var(--r-block);border:1px solid var(--line);background:#fff;position:relative;overflow:hidden}.tbl__scroll{position:relative;overflow-x:auto}.tbl__head,.tbl__row{align-items:center;gap:12px;min-width:760px;padding:0 16px;display:grid}.tbl__head{height:var(--head-h);background:var(--bg-page);border-bottom:1px solid var(--line);z-index:2;position:sticky;top:0}.tbl__head>*{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-5);white-space:nowrap}.tbl__row{border-bottom:1px solid var(--line-soft);min-height:49px;padding-top:6px;padding-bottom:6px;font-size:13px}.tbl__row:last-child{border-bottom:0}.tbl__row:hover{background:var(--bg-page)}.tbl .sticky-l{background:inherit;position:sticky;left:0}.tbl .num{text-align:right;font-family:var(--font-mono)}.tbl .stt{font-family:var(--font-mono);color:var(--fg-5);font-size:11px}.tbl .r{justify-self:end}.name{flex-direction:column;gap:2px;min-width:0;display:flex}.name__link{color:var(--accent);text-align:left;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:500;overflow:hidden}.name__link:hover{color:var(--accent-strong);text-decoration:underline;text-decoration-thickness:1px}.cut{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tbl__foot{border-top:1px solid var(--line-soft);height:44px;color:var(--fg-4);align-items:center;gap:10px;padding:0 14px;font-size:12px;display:flex}.tbl__foot .sizes{gap:2px;display:flex}.tbl__foot .sizes button{min-width:34px;height:26px;font-family:var(--font-mono);color:var(--fg-4);border-radius:6px;font-size:11px}.tbl__foot .sizes button.is-on{background:var(--accent-soft);color:var(--accent-strong);font-weight:500}.tbl__foot .pages{align-items:center;gap:4px;margin-left:auto;display:flex}.tbl__foot .pages button{border:1px solid var(--line);min-width:30px;height:26px;font-family:var(--font-mono);background:#fff;border-radius:6px;font-size:11px}.tbl__foot .pages button.is-on{border-color:var(--accent);background:var(--accent);color:#fff}.tbl__new{background:var(--accent-soft);border-bottom:1px solid var(--accent-line);color:var(--accent-strong);align-items:center;gap:8px;padding:8px 14px;font-size:12.5px;display:flex}.tbl__new .live-dot{background:var(--accent);border-radius:50%;flex:none;width:6px;height:6px}.tbl__new-link{color:var(--accent);font-weight:500}.tbl__new-link:hover{color:var(--accent-strong);text-decoration:underline}.tip{z-index:60;border-radius:var(--r-chip);background:var(--fg-ink);color:#fff;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-tip);padding:4px 8px;font-size:11px;position:fixed;transform:translate(-50%,calc(-100% - 7px))}.state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:28px 16px;display:flex}.state__icon{border:1px solid var(--accent-line);background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;display:flex}.state__title{font-size:13.5px;font-weight:500}.state__text{max-width:420px;color:var(--fg-stone);font-size:11.5px;line-height:1.55}.state--err .state__icon{border-color:var(--bad-line);background:var(--bad-soft);color:var(--bad)}.err-line{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;padding:32px 16px;font-size:12.5px;display:flex}.err-line__title{color:var(--bad);font-weight:500}.err-line__msg{max-width:460px;color:var(--fg-4)}.retry{border-radius:var(--r-btn-sm);border:1px solid var(--line);height:28px;color:var(--accent);background:#fff;padding:0 10px;font-size:12px;font-weight:500}.retry:hover{background:var(--accent-soft)}.slow-line{text-align:center;color:var(--fg-4);padding:8px 16px;font-size:11.5px;display:block}.stats{border-radius:var(--r-block);border:1px solid var(--line);background:#fff;flex-direction:column;gap:10px;padding:12px 16px;display:flex}.stats__title{font-size:13.5px;font-weight:600}.stats__desc{color:var(--fg-4);font-size:12px;line-height:1.5}.stats__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.tile{background:var(--bg-page);border-radius:9px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.tile__k{color:var(--fg-4);font-size:11px}.tile__v{font-family:var(--font-mono);color:var(--fg-1);font-size:20px;font-weight:500}.tile__v--bad{color:var(--bad)}.tile__v--wait{color:var(--wait)}.tile__v--ok{color:var(--ok)}.types{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.type{border-radius:var(--r-tile);border:1px solid var(--line);text-align:left;background:#fff;flex-direction:column;gap:8px;width:100%;padding:10px 12px;display:flex}.type:hover{border-color:var(--accent-line)}.type.is-on{border-color:var(--accent);background:var(--accent-tint);box-shadow:0 0 0 1px var(--accent) inset}.type__top{justify-content:space-between;gap:8px;font-size:13px;font-weight:600;display:flex}.type__n{font-family:var(--font-mono);font-size:13px}.bar{background:var(--bg-muted);border-radius:3px;height:6px;display:flex;overflow:hidden}.bar>span{height:100%;display:block}.type__meta{color:var(--fg-4);font-size:11.5px}.type__gap{color:var(--bad);font-size:11px}.tl{border-radius:var(--r-block);border:1px solid var(--line);background:#fff;flex-direction:column;gap:9px;padding:12px 14px;display:flex}.tl__row{grid-template-columns:210px minmax(0,1fr);align-items:center;gap:10px;display:grid}.tl__axis{border-bottom:1px solid var(--line);height:16px;font-family:var(--font-mono);color:var(--fg-5);justify-content:space-between;font-size:10px;display:flex}.tl__lane{background:var(--bg-page);border-radius:5px;height:22px;position:relative}.tl__bar{background:var(--accent-line);border:1px solid var(--accent);border-radius:4px;height:16px;position:absolute;top:3px}.tl__bar--open{background:0 0;border-style:dashed}.tl__q{font-family:var(--font-mono);color:var(--wait);font-size:11px;position:absolute;top:2px}.tl__who{flex-direction:column;gap:1px;min-width:0;display:flex}.tl__who b{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:500;overflow:hidden}.map{flex-wrap:wrap;gap:12px;display:flex}.map__canvas{border-radius:var(--r-block);border:1px solid var(--line);background:#f7f7f5;flex:320px;min-width:0;height:300px;position:relative;overflow:hidden}.map__pin{background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 1px var(--accent-line);border:2px solid #fff;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.map__zoom{flex-direction:column;gap:4px;display:flex;position:absolute;top:10px;right:10px}.map__zoom span{border:1px solid var(--line);width:28px;height:28px;color:var(--fg-2);background:#fff;border-radius:6px;justify-content:center;align-items:center;font-size:14px;display:flex}.map__list{border-radius:var(--r-block);border:1px solid var(--line);background:#fff;flex-direction:column;flex:240px;min-width:0;max-height:300px;display:flex;overflow:auto}.map__li{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;padding:9px 12px;font-size:12.5px;display:flex}.map__li .dot{background:var(--accent);border-radius:50%;flex:none;width:10px;height:10px}.map__li .dot--none{border:1.5px dashed var(--fg-5);background:0 0}.dlg-stage{border-radius:var(--r-block);background:#09090b73;justify-content:center;padding:32px 16px;display:flex;position:relative}.dlg{border-radius:var(--r-dialog);border:1px solid var(--line);width:min(560px,100%);max-height:640px;box-shadow:var(--shadow-dialog);background:#fff;flex-direction:column;display:flex;overflow:hidden}.dlg__head{border-bottom:1px solid var(--line-soft);align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.dlg__titles{flex-direction:column;gap:4px;min-width:0;display:flex}.dlg__title{font-size:var(--fs-lg);font-weight:600}.dlg__desc{color:var(--fg-4);font-size:11.5px;line-height:1.5}.dlg__close{border-radius:var(--r-btn-sm);border:1px solid var(--line);width:28px;height:28px;color:var(--fg-3);flex:none;justify-content:center;align-items:center;margin-left:auto;display:flex}.dlg__body{flex-direction:column;flex:1;gap:14px;min-height:0;padding:16px 18px;display:flex;position:relative;overflow-y:auto}.dlg__foot{border-top:1px solid var(--line-soft);background:var(--bg-page);flex-wrap:wrap;align-items:center;gap:10px;padding:13px 18px;display:flex}.dlg__foot .grow{flex:1}.dlg--mobile{border:0;border-radius:0;width:360px;height:640px;max-height:none}.dlg--mobile .dlg__close{width:44px;height:44px}.dlg--mobile .dlg__foot .btn{flex:1;height:44px}.kv{grid-template-columns:114px minmax(0,1fr);gap:8px 12px;font-size:13px;display:grid}.kv dt{color:var(--fg-4);font-size:12px}.kv dd{min-width:0;margin:0}.flow{border-left:2px solid var(--line-soft);flex-direction:column;gap:8px;padding-left:12px;font-size:12px;display:flex}.flow b{font-weight:500}.reasons{flex-wrap:wrap;gap:6px;display:flex}.reason{border-radius:var(--r-pill);border:1px solid var(--line);height:30px;color:var(--fg-2);background:#fff;padding:0 12px;font-size:12.5px}.reason.is-on{background:var(--bad-soft);border-color:var(--bad-line);color:var(--bad);font-weight:500}.reason--ok.is-on{background:var(--ok-soft);border-color:var(--ok-line);color:var(--ok)}.seg{border-radius:var(--r-btn);border:1px solid var(--line);background:var(--bg-page);align-items:center;padding:2px;display:inline-flex}.seg button{height:28px;color:var(--fg-4);border-radius:6px;padding:0 12px;font-size:12.5px}.seg button.is-on{color:var(--fg-1);background:#fff;box-shadow:0 1px 2px #0000000f}.feed{border-radius:var(--r-block);border:1px solid var(--line);background:#fff;position:relative;overflow:hidden}.feed__head{border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.live{border-radius:var(--r-pill);border:1px solid var(--ok-line);background:var(--ok-soft);height:22px;color:var(--ok);align-items:center;gap:6px;padding:0 9px;font-size:11px;font-weight:500;display:inline-flex}.live:before{content:"";background:#22c55e;border-radius:50%;width:6px;height:6px}.live--off{border-color:var(--line);background:var(--bg-muted);color:var(--fg-4)}.live--off:before{background:var(--fg-5)}.ev{border-bottom:1px solid var(--line-soft);grid-template-columns:64px minmax(0,1fr);gap:10px;padding:10px 14px;display:grid}.ev:last-child{border-bottom:0}.ev__t{font-family:var(--font-mono);color:var(--fg-5);padding-top:2px;font-size:10.5px}.ev__main{font-size:13px}.ev__sub{font-family:var(--font-mono);color:var(--fg-4);font-size:10.5px}.ev--new{background:var(--ok-soft);animation:2.4s ease-out forwards ev-new}.ev--need{background:var(--wait-soft)}@keyframes ev-new{to{background:#fff}}.phone{border:1px solid var(--line);background:var(--bg-page);border-radius:28px;flex-direction:column;gap:12px;width:360px;max-width:100%;padding:14px;display:flex}.swipe{border:1px solid var(--line);width:100%;box-shadow:var(--shadow-sheet);background:#fff;border-radius:18px;overflow:hidden}.swipe__img{aspect-ratio:4/5;background:#ededeb;position:relative}.swipe__body{flex-direction:column;gap:9px;padding:14px 16px;display:flex}.swipe__title{font-size:16px;font-weight:600}.swipe__q{border-radius:var(--r-sheet);border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent-strong);padding:12px 14px;font-size:14px}.swipe__acts{grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr);gap:10px;display:grid}.swipe__acts button{border-radius:16px;height:56px;font-size:15px;font-weight:600}.progress{background:var(--bg-muted);border-radius:999px;height:4px;overflow:hidden}.progress>span{background:var(--accent);height:100%;display:block}.mgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:32px 20px;display:grid}.mcard{flex-direction:column;gap:10px;min-width:0;display:flex}.mframe{aspect-ratio:4/5;border-radius:var(--r-media);display:block;position:relative;overflow:hidden}.mframe--obj{background:#ededeb}.mframe--scan{background:#efe9dd}.mframe--scene{background:#d9dcd6}.mframe__in{justify-content:center;align-items:center;display:flex;position:absolute;inset:9%}.mframe__fill{position:absolute;inset:0}.mframe__tags{z-index:2;gap:4px;display:flex;position:absolute;top:8px;left:8px}.srctag{border-radius:var(--r-pill);color:var(--fg-1b);border:1px solid var(--line);background:#fff;padding:2px 8px;font-size:11px;font-weight:600;box-shadow:0 1px 2px #0000001f}.dot20{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:flex}.mcard__kicker{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-5);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.mcard__name{letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.7em;font-size:15px;font-weight:500;line-height:1.35;display:-webkit-box;overflow:hidden}.pending{text-align:center;background-image:repeating-linear-gradient(135deg,#00000006 0 8px,#0000 8px 16px);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px;display:flex;position:absolute;inset:0}.pending__ring{border:1.5px dashed var(--fg-5);width:34px;height:34px;color:var(--fg-4);border-radius:50%;justify-content:center;align-items:center;display:flex}.pending b{color:var(--fg-2);font-size:12.5px;font-weight:600}.img-err{color:var(--fg-4);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12.5px;display:flex;position:absolute;inset:0}.img-err button{min-height:44px;color:var(--accent);padding:0 12px;font-weight:600}.viewer{background:#18181b;flex-direction:column;gap:10px;padding:12px 0 14px;display:flex}.viewer__stage{border-radius:10px;height:min(68vh,560px);margin:0 12px;position:relative;overflow:hidden}.viewer__cap{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 120px);color:var(--line);background:#09090b99;border-radius:6px;padding:3px 8px;font-size:11.5px;position:absolute;bottom:8px;left:12px;overflow:hidden}.viewer__open{color:#fff;background:#09090b99;border-radius:6px;align-items:center;min-height:32px;padding:0 8px;font-size:11.5px;font-weight:500;display:flex;position:absolute;bottom:6px;right:8px}.viewer__strip{gap:8px;padding:0 12px;display:flex;overflow-x:auto}.viewer__thumb{border-radius:9px;flex:none;width:64px;height:64px;position:relative;overflow:hidden}.viewer__thumb.is-on:after{content:"";outline-offset:-2px;border-radius:9px;outline:2px solid #fff;position:absolute;inset:0}.viewer__thumb small{color:#fff;background:#09090b99;border-radius:3px;padding:0 4px;font-size:9.5px;position:absolute;bottom:3px;left:3px}.pager{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:14px;display:flex}.pager__count{color:var(--fg-4);font-size:13px}.pager__nums{align-items:center;gap:6px;display:flex}.pager__btn{border:1px solid var(--line);min-width:44px;height:44px;color:var(--fg-1b);background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:0 6px;font-size:14px;font-weight:600;display:flex}.pager__btn:hover{border-color:var(--accent)}.pager__btn[aria-current=page]{border-color:var(--accent);background:var(--accent);color:#fff}.pager__btn[aria-disabled=true]{opacity:.35;cursor:default}.pager__gap{min-width:44px;height:44px;color:var(--fg-5);justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.pager__sizes{color:var(--fg-4);align-items:center;gap:2px;font-size:13px;display:flex}.pager__sizes button{min-width:40px;height:44px;color:var(--fg-4);border-radius:8px;padding:0 8px}.pager__sizes button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.pv{flex-direction:column;gap:22px;max-width:1240px;margin:0 auto;padding:28px 32px 56px;display:flex}.pv__kicker{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-5);font-size:10px}.pv .page-head h1{font-size:var(--fs-title);letter-spacing:-.01em;margin:0;font-weight:600}.pv>div>h1{letter-spacing:-.02em;margin:4px 0 6px;font-size:26px;font-weight:600}.pv__lead{max-width:820px;color:var(--fg-3);margin:0;font-size:13.5px;line-height:1.6}.pv__rules{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.pv__rule{background:var(--bg-muted);color:var(--fg-2);border-radius:6px;padding:3px 8px;font-size:11.5px}.pv__grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:18px;display:grid}.pv__state{flex-direction:column;gap:10px;min-width:0;display:flex}.pv__state>header{align-items:center;gap:8px;display:flex}.pv__tag{font-family:var(--font-mono);letter-spacing:.08em;background:var(--bg-muted);color:var(--fg-3);text-transform:uppercase;border-radius:5px;padding:2px 7px;font-size:10px}.pv__tag--xong{background:var(--ok-soft);color:var(--ok)}.pv__tag--xuong{background:var(--accent-soft);color:var(--accent-strong)}.pv__tag--cu{background:var(--info-soft);color:var(--info)}.pv__tag--trong{background:var(--bg-muted);color:var(--fg-3)}.pv__tag--loi{background:var(--bad-soft);color:var(--bad)}.pv__note{color:var(--fg-4);font-size:12px;line-height:1.5}.pv__frame{border:1px solid var(--line);background:var(--bg-page);border-radius:14px;min-width:0;padding:16px;position:relative}.pv__frame--flush{padding:0;overflow:hidden}.pv__frame--white{background:#fff}.pv h2{margin:8px 0 0;font-size:16px;font-weight:600}.pv table.spec{border-collapse:collapse;border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;font-size:12.5px;overflow:hidden}.pv table.spec th,.pv table.spec td{text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top;padding:8px 12px}.pv table.spec th{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-5);background:var(--bg-page);font-size:9.5px;font-weight:400}.pv pre{color:#e4e4e7;font-family:var(--font-mono);background:#18181b;border-radius:10px;margin:0;padding:14px 16px;font-size:11.5px;line-height:1.6;overflow:auto}.pv code{font-family:var(--font-mono);background:var(--bg-muted);border-radius:4px;padding:0 4px;font-size:12px}.pv pre code{font-size:inherit;background:0 0;padding:0}.pv__toggle{border:1px solid var(--line);background:#fff;border-radius:8px;gap:2px;padding:2px;display:inline-flex}.pv__toggle button{height:28px;color:var(--fg-4);border-radius:6px;padding:0 10px;font-size:12px}.pv__toggle button.is-on{background:var(--accent-soft);color:var(--accent-strong);font-weight:500}.pv__check{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pv__check li{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13px;line-height:1.5;display:flex}.pv__check li b{font-family:var(--font-mono);color:var(--accent-strong);min-width:28px;padding-top:2px;font-size:11px}.skl{background:linear-gradient(90deg, var(--bg-muted) 25%, #f7f7f8 50%, var(--bg-muted) 75%);background-size:200% 100%;border-radius:4px;animation:1.3s linear infinite skl-chay;display:block}.skl--accent{background-image:linear-gradient(90deg, var(--accent-skel) 25%, var(--accent-skel-hi) 50%, var(--accent-skel) 75%)}.skl--faint{opacity:.55}@keyframes skl-chay{0%{background-position:200% 0}to{background-position:-200% 0}}.tbl{position:relative}.load-bar{z-index:2;height:2px;position:absolute;top:0;left:0;right:0;overflow:hidden}.load-bar:after{content:"";background:var(--accent);width:40%;animation:1.1s ease-in-out infinite load-chay;position:absolute;inset:0}@keyframes load-chay{0%{transform:translate(-100%)}to{transform:translate(250%)}}.tbl__scroll.is-stale{opacity:.62;transition:opacity .15s}.mau-badge{flex:none;margin-left:auto}@media (prefers-reduced-motion:reduce){.skl,.load-bar:after{animation:none}}
