:root{--bg: #f3f5f8;--bg-card: #ffffff;--bg-soft: #eaeef4;--bg-input: #ffffff;--bg-side: #ffffff;--text: #172033;--text-2: #4b5768;--text-3: #7b8799;--text-on-accent: #ffffff;--line: #dfe4ec;--line-strong: #c9d1dc;--accent: #2457c5;--accent-hover: #1d49a6;--accent-soft: #e8eefb;--accent-ink: #1b3f8f;--ok: #1a7f4b;--ok-soft: #e3f4ea;--warn: #b26a00;--warn-soft: #fbf0dc;--bad: #c8321f;--bad-soft: #fbe6e2;--info: #0e6f8c;--info-soft: #e0f1f6;--tiktok: #111318;--shopee: #ee4d2d;--radius: 10px;--radius-sm: 7px;--shadow: 0 1px 2px rgba(23, 32, 51, .06), 0 6px 18px -10px rgba(23, 32, 51, .18);--side-w: 236px;--top-h: 56px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0f141a;--bg-card: #171d25;--bg-soft: #1e2630;--bg-input: #121821;--bg-side: #12181f;--text: #e8edf3;--text-2: #b0bac6;--text-3: #7f8b99;--text-on-accent: #0f141a;--line: #28323e;--line-strong: #35414f;--accent: #7ea7ff;--accent-hover: #9dbbff;--accent-soft: #1c2a45;--accent-ink: #c6d8ff;--ok: #6fd39c;--ok-soft: #14301f;--warn: #ecbf74;--warn-soft: #34270e;--bad: #f19a8e;--bad-soft: #3a1712;--info: #7cc7de;--info-soft: #0f2a33;--tiktok: #e8edf3;--shopee: #ff6a4d;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 20px -12px rgba(0, 0, 0, .7);color-scheme:dark}}:root[data-theme=dark]{--bg: #0f141a;--bg-card: #171d25;--bg-soft: #1e2630;--bg-input: #121821;--bg-side: #12181f;--text: #e8edf3;--text-2: #b0bac6;--text-3: #7f8b99;--text-on-accent: #0f141a;--line: #28323e;--line-strong: #35414f;--accent: #7ea7ff;--accent-hover: #9dbbff;--accent-soft: #1c2a45;--accent-ink: #c6d8ff;--ok: #6fd39c;--ok-soft: #14301f;--warn: #ecbf74;--warn-soft: #34270e;--bad: #f19a8e;--bad-soft: #3a1712;--info: #7cc7de;--info-soft: #0f2a33;--tiktok: #e8edf3;--shopee: #ff6a4d;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 20px -12px rgba(0, 0, 0, .7);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Be Vietnam Pro,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5;font-feature-settings:"tnum" 1}button{font:inherit;cursor:pointer;color:inherit}input,select,textarea{font:inherit;color:var(--text)}a{color:var(--accent)}h1,h2,h3{margin:0;text-wrap:balance}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.shell{display:grid;grid-template-columns:var(--side-w) 1fr;min-height:100vh}.side{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--bg-side);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:14px 12px;gap:6px}.side .brand{display:flex;align-items:center;gap:10px;padding:6px 8px 14px;text-decoration:none;color:var(--text)}.side .brand .mark{width:32px;height:32px;border-radius:9px;background:var(--accent);color:var(--text-on-accent);display:grid;place-items:center;font-weight:800;font-size:14px;letter-spacing:-.02em}.side .brand strong{font-size:15px;display:block;line-height:1.1}.side .brand small{color:var(--text-3);font-size:11.5px}.side .group{margin-top:10px}.side .group-label{display:flex;align-items:center;gap:8px;padding:0 10px 6px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.side .group-label .dot{width:8px;height:8px;border-radius:50%;background:var(--dot, var(--text-3))}.side nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-2);text-decoration:none;font-weight:500;font-size:13.5px;transition:background .12s}.side nav a:hover{background:var(--bg-soft);color:var(--text)}.side nav a.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.side nav a .ic{width:18px;text-align:center;opacity:.9;font-size:14px}.side nav a .count{margin-left:auto;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--bg-soft);color:var(--text-2)}.side nav a.active .count{background:var(--bg-card)}.side .foot{margin-top:auto;padding:10px 8px 4px;font-size:11.5px;color:var(--text-3);border-top:1px solid var(--line)}.side .foot .health{display:flex;align-items:center;gap:6px}.side .foot .health i{width:8px;height:8px;border-radius:50%;background:var(--text-3);display:inline-block}.side .foot .health.ok i{background:var(--ok)}.side .foot .health.bad i{background:var(--bad)}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:var(--top-h);display:flex;align-items:center;gap:12px;padding:0 22px;background:var(--bg-card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar .crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-3);min-width:0}.topbar .crumbs b{color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .spacer{margin-left:auto}.topbar .who{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--text-2)}.topbar .who .avatar{width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;font-size:12px}.topbar .who .role{color:var(--text-3)}.menu-btn{display:none}.page{padding:22px 24px 64px;max-width:1360px;width:100%;margin:0 auto}.page.narrow{max-width:1080px}.page-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:18px}.page-head .titles{min-width:0;flex:1 1 320px}.page-head .eyebrow{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-3);margin-bottom:4px}.page-head .eyebrow a{color:var(--text-3);text-decoration:none}.page-head .eyebrow a:hover{color:var(--accent)}.page-head h1{font-size:21px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.page-head .sub{color:var(--text-3);font-size:13px;margin:4px 0 0;max-width:72ch}.page-head .actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--bg-card);color:var(--text);font-weight:600;font-size:13px;line-height:1.3;white-space:nowrap;transition:border-color .12s,background .12s}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}.btn.danger:hover{background:var(--bad-soft)}.btn.ghost{border-color:transparent;background:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--bg-soft);color:var(--text)}.btn.sm{padding:3px 9px;font-size:12px}.btn.icon{padding:6px 8px}.input,select.input,textarea.input{padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--bg-input);width:100%;font-size:13.5px}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input.num{text-align:right;font-variant-numeric:tabular-nums}label.f{display:block;font-size:11.5px;font-weight:600;color:var(--text-2);margin-bottom:4px;letter-spacing:.01em}.hint{font-size:11.5px;color:var(--text-3);margin-top:3px}.field{min-width:0}.form-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.form-grid .span2{grid-column:span 2}.form-grid .full{grid-column:1 / -1}.segmented{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-card)}.segmented button{border:0;background:transparent;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--text-2)}.segmented button+button{border-left:1px solid var(--line)}.segmented button.active{background:var(--accent-soft);color:var(--accent-ink)}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.card.pad-0{padding:0}.card h2,.card-title{font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px}.card-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}.card-head .spacer{margin-left:auto}.grid{display:grid;gap:14px}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row .spacer{margin-left:auto}.section-title{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin:4px 0 10px}.stats{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:18px}.stat{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius);padding:13px 15px;display:flex;flex-direction:column;gap:4px;min-width:0;position:relative;text-align:left}.stat.click{cursor:pointer;transition:border-color .12s}.stat.click:hover{border-color:var(--accent)}.stat .label{font-size:12px;color:var(--text-3);font-weight:600;display:flex;align-items:center;gap:6px}.stat .value{font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.15;font-variant-numeric:tabular-nums}.stat .hint{font-size:11.5px;color:var(--text-3);margin:0}.stat[data-tone=ok] .value{color:var(--ok)}.stat[data-tone=warn] .value{color:var(--warn)}.stat[data-tone=bad] .value{color:var(--bad)}.stat[data-tone=info] .value{color:var(--info)}.stat[data-tone=accent] .value{color:var(--accent)}.stat .stripe{position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--stripe, transparent)}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 12px}.filters .spacer{margin-left:auto}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line-strong);background:var(--bg-card);border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:600;color:var(--text-2);display:inline-flex;align-items:center;gap:6px}.chip:hover{border-color:var(--accent)}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.chip .n{font-size:11px;opacity:.75}.search{position:relative}.search .input{padding-left:30px;width:240px}.search:before{content:"⌕";position:absolute;left:10px;top:50%;transform:translateY(-55%);color:var(--text-3);font-size:16px}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-card)}table{border-collapse:collapse;width:100%;font-size:13px;min-width:720px}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);background:var(--bg-soft);position:sticky;top:0;z-index:1;font-weight:700}th,td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr.link{cursor:pointer}tbody tr.link:hover td{background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12px;color:var(--text-2)}td .ell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td .sub{color:var(--text-3);font-size:11.5px;display:block}tr.bad td{background:color-mix(in srgb,var(--bad-soft) 55%,transparent)}tr.removed td{opacity:.5;text-decoration:line-through}.empty{text-align:center;padding:30px 16px;color:var(--text-3)}.empty b{display:block;color:var(--text-2);margin-bottom:4px}.thumb{width:34px;height:34px;border-radius:6px;object-fit:cover;background:var(--bg-soft);flex:0 0 auto;border:1px solid var(--line)}.prod{display:flex;align-items:center;gap:10px;min-width:0;max-width:360px}.prod>div{min-width:0}.pager{display:flex;align-items:center;gap:8px;justify-content:flex-end;padding:10px 0 0;font-size:12.5px;color:var(--text-3)}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap;background:color-mix(in srgb,var(--p, var(--text-3)) 14%,transparent);color:var(--p, var(--text-3))}.pill.lg{font-size:12.5px;padding:3px 11px}.pill i{width:6px;height:6px;border-radius:50%;background:currentColor}.tag{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:1px 7px;border-radius:5px;background:var(--bg-soft);color:var(--text-2);white-space:nowrap}.alert{border-radius:var(--radius-sm);padding:10px 13px;font-size:13px;margin:0 0 12px;display:flex;gap:10px;align-items:flex-start;border:1px solid transparent}.alert.bad{background:var(--bad-soft);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 25%,transparent)}.alert.ok{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 25%,transparent)}.alert.info{background:var(--info-soft);color:var(--info);border-color:color-mix(in srgb,var(--info) 25%,transparent)}.alert.warn{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 25%,transparent)}.alert>div{flex:1;min-width:0}.alert .list{font-size:12px;margin-top:4px;opacity:.9}.statusbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px;align-items:center}.statusbar .spacer{margin-left:auto}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--bg)}.login-card{width:100%;max-width:380px;padding:26px;box-shadow:var(--shadow)}.login-card .brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}.login-card .brand .mark{width:40px;height:40px;border-radius:11px;background:var(--accent);color:var(--text-on-accent);display:grid;place-items:center;font-weight:800}.login-card h1{font-size:18px}.picker{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.picker .tablewrap{max-height:360px;overflow:auto;border-radius:var(--radius-sm)}.picker table{min-width:600px}.timeline{display:flex;flex-direction:column;gap:0;font-size:12.5px}.timeline>div{display:grid;grid-template-columns:130px 120px 1fr;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);color:var(--text-2)}.timeline>div:last-child{border-bottom:0}.timeline .t{color:var(--text-3);font-variant-numeric:tabular-nums}.list{display:flex;flex-direction:column}.list a,.list .li{display:flex;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;font-size:13px}.list a:hover{background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}.list a:last-child,.list .li:last-child{border-bottom:0}.list .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list .meta{color:var(--text-3);font-size:12px;white-space:nowrap}.chan{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:5px;color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);white-space:nowrap}@media (max-width: 960px){.shell{grid-template-columns:1fr}.side{position:fixed;inset:0 auto 0 0;width:var(--side-w);z-index:40;transform:translate(-100%);transition:transform .18s;box-shadow:var(--shadow)}.side.open{transform:none}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:35}.menu-btn{display:inline-flex}.page{padding:16px 14px 60px}.search .input{width:100%}}@media print{.side,.topbar,.no-print,.filters{display:none!important}.shell{display:block}.page{max-width:none;padding:0}body{background:#fff;color:#000}.tablewrap{border:none}th{position:static}}@media (max-width: 640px){.topbar .who>span:not(.avatar){display:none}.topbar{padding:0 12px}}
