:root{--brand-50:#edf7f1;--brand-100:#d4eedd;--brand-200:#a9debb;--brand-400:#4db87a;--brand-500:#2d8a52;--brand-600:#247044;--brand-700:#1b5533;--brand-900:#0e2e1c;--ink-0:#fff;--ink-50:#f8fafb;--ink-100:#f1f4f7;--ink-150:#e7ecf1;--ink-200:#dde3ea;--ink-300:#c5cdd6;--ink-400:#98a2af;--ink-500:#6b7684;--ink-600:#4a5462;--ink-700:#323a45;--ink-800:#1f252e;--ink-900:#0e131a;--success-50:#ecfdf3;--success-200:#abefc6;--success-500:#12b76a;--success-700:#027a48;--warn-50:#fffaeb;--warn-200:#fedf89;--warn-500:#f79009;--warn-700:#b54708;--danger-50:#fef3f2;--danger-200:#fecdca;--danger-500:#f04438;--danger-700:#b42318;--info-50:#eff8ff;--info-200:#b2ddff;--info-500:#2e90fa;--info-700:#175cd3;--ch-ml-bg:#fff4cc;--ch-ml-fg:#7a5a00;--ch-ml-dot:#d8a800;--ch-sh-bg:#ffe5d6;--ch-sh-fg:#8a3a10;--ch-sh-dot:#ef5a1a;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--sh-1:0 1px 2px #1018280f;--sh-2:0 1px 3px #10182814, 0 1px 2px #1018280a;--sh-3:0 8px 24px -8px #10182824, 0 2px 6px #1018280d;--sh-4:0 24px 48px -16px #1018282e;--hd-h:56px;--sb-w:240px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:var(--font-sans);color:var(--ink-800);-webkit-font-smoothing:antialiased;background:var(--ink-50);font-size:14px;line-height:1.45}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}a{color:inherit;text-decoration:none}.num{font-family:var(--font-mono);font-feature-settings:"tnum";letter-spacing:-.01em}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--ink-200);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--ink-300)}.app-layout{height:100vh;display:flex;overflow:hidden}.app-sidebar{width:var(--sb-w);min-width:var(--sb-w);background:var(--ink-0);border-right:1px solid var(--ink-150);flex-direction:column;height:100vh;display:flex;overflow-y:auto}.app-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.app-header{height:var(--hd-h);min-height:var(--hd-h);background:var(--ink-0);border-bottom:1px solid var(--ink-150);align-items:center;gap:16px;padding:0 24px;display:flex}.app-content{flex:1;padding:24px;overflow-y:auto}.card{background:var(--ink-0);border:1px solid var(--ink-150);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:20px}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-title{color:var(--ink-900);font-size:20px;font-weight:600}.page-subtitle{color:var(--ink-500);margin-top:2px;font-size:13px}.grid-2{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.badge{white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.badge-green{background:var(--success-50);color:var(--success-700)}.badge-amber{background:var(--warn-50);color:var(--warn-700)}.badge-red{background:var(--danger-50);color:var(--danger-700)}.badge-blue{background:var(--info-50);color:var(--info-700)}.badge-brand{background:var(--brand-50);color:var(--brand-700)}.badge-gray{background:var(--ink-100);color:var(--ink-600)}.badge-ml{background:var(--ch-ml-bg);color:var(--ch-ml-fg)}.badge-shopee{background:var(--ch-sh-bg);color:var(--ch-sh-fg)}.score-high{color:var(--success-500)}.score-medium{color:var(--warn-500)}.score-low{color:var(--danger-500)}.table-wrap{overflow-x:auto}table.hs-table{border-collapse:collapse;width:100%;font-size:13.5px}table.hs-table th{text-align:left;color:var(--ink-500);border-bottom:1px solid var(--ink-150);background:var(--ink-50);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:500}table.hs-table td{border-bottom:1px solid var(--ink-100);color:var(--ink-700);padding:12px 14px}table.hs-table tbody tr:hover td{background:var(--ink-50)}table.hs-table tbody tr:last-child td{border-bottom:none}.hs-input{border:1px solid var(--ink-200);border-radius:var(--r-md);height:36px;color:var(--ink-800);background:var(--ink-0);outline:none;width:100%;padding:0 12px;font-size:13.5px;transition:border-color .15s}.hs-input:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-50)}.hs-input::placeholder{color:var(--ink-400)}.empty-state{color:var(--ink-400);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 24px;display:flex}.empty-state p{color:var(--ink-500);font-size:14px}
