@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+Thai:wght@400;500;600;700&family=IBM+Plex+Sans+Thai:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";
:root{--brand-orange:#ff7a1a;--brand-orange-soft:#ff9447;--brand-blue:#3b82f6;--brand-blue-soft:#60a5fa;--bg-app:#0a0f1e;--bg-surface:#0f1729;--bg-elevated:#131c33;--bg-card:#16203a;--bg-hover:#1b2742;--bg-input:#0c1426;--border-subtle:#ffffff0f;--border-default:#ffffff1a;--border-strong:#ffffff2e;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-muted:#475569;--status-blue:#3b82f6;--status-blue-bg:#3b82f624;--status-green:#10b981;--status-green-bg:#10b98124;--status-red:#ef4444;--status-red-bg:#ef444424;--status-orange:#f59e0b;--status-orange-bg:#f59e0b24;--status-purple:#a855f7;--status-purple-bg:#a855f724;--status-cyan:#06b6d4;--status-cyan-bg:#06b6d424;--status-gray:#64748b;--status-gray-bg:#64748b24;--ch-shopee:#fb6c1a;--ch-lazada:#2e7bf6;--ch-tiktok:#e4385c;--ch-bento:#8b5cf6;--ch-line:#06c755;--ch-fb:#1877f2;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:18px;--row-h:44px;--pad-card:18px;--gap-card:14px;--shadow-card:0 1px 0 #ffffff0a inset,0 8px 24px #00000052;--shadow-pop:0 24px 64px #0000008c,0 0 0 1px #ffffff0f;--font-th:"Noto Sans Thai","IBM Plex Sans Thai",system-ui,-apple-system,"Segoe UI",sans-serif;--font-en:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","SF Mono",ui-monospace,monospace}[data-density=compact]{--row-h:36px;--pad-card:14px;--gap-card:10px}[data-theme=light]{--bg-app:#f4f6fb;--bg-surface:#fff;--bg-elevated:#fff;--bg-card:#fff;--bg-hover:#f1f5f9;--bg-input:#f8fafc;--border-subtle:#0f172a0f;--border-default:#0f172a1a;--border-strong:#0f172a2e;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--text-muted:#94a3b8;--status-blue-bg:#3b82f61a;--status-green-bg:#10b9811a;--status-red-bg:#ef44441a;--status-orange-bg:#f59e0b1f;--status-purple-bg:#a855f71a;--status-cyan-bg:#06b6d41a;--status-gray-bg:#64748b1a;--shadow-card:0 1px 2px #0f172a0f,0 8px 24px #0f172a0f;--shadow-pop:0 24px 64px #0f172a2e,0 0 0 1px #0f172a0f}*{box-sizing:border-box}html,body,#root{background:var(--bg-app);height:100%;color:var(--text-primary);font-family:var(--font-th);-webkit-font-smoothing:antialiased;letter-spacing:.005em;margin:0;font-size:14px}button{cursor:pointer;font-family:inherit}input,select,textarea{color:inherit;font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.app{grid-template-rows:56px 1fr;grid-template-columns:240px 1fr;height:100vh;display:grid}.topbar{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);z-index:5;grid-column:1/-1;align-items:center;gap:14px;padding:0 18px;display:flex}.topbar .brand{align-items:center;gap:10px;width:222px;font-size:15px;font-weight:700;display:flex}.topbar .brand-mark{background:linear-gradient(135deg,var(--brand-orange)0%,var(--brand-blue)100%);color:#fff;width:28px;height:28px;font-size:13px;font-weight:800;font-family:var(--font-en);border-radius:8px;place-items:center;display:grid}.topbar .brand-name{letter-spacing:.01em}.topbar .brand-name b{color:var(--brand-orange)}.topbar .brand-name i{color:var(--brand-blue);font-style:normal}.topbar .title-block{flex-direction:column;line-height:1.2;display:flex}.topbar .title-block .eyebrow{letter-spacing:.16em;color:var(--text-tertiary);text-transform:uppercase;font-size:10px;font-weight:600}.topbar .title-block .title{color:var(--text-primary);font-size:14px;font-weight:600}.topbar .spacer{flex:1}.topbar .role-switch{background:var(--bg-input);border:1px solid var(--border-default);border-radius:999px;gap:2px;padding:3px;display:flex}.topbar .role-switch button{color:var(--text-secondary);background:0 0;border:0;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:600}.topbar .role-switch button.active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border-default)}.topbar .user{background:var(--bg-input);border:1px solid var(--border-default);border-radius:999px;align-items:center;gap:10px;padding:6px 10px 6px 6px;font-size:12px;display:flex}.topbar .user .avatar{background:linear-gradient(135deg,var(--brand-orange),var(--brand-blue));color:#fff;width:24px;height:24px;font-size:11px;font-weight:700;font-family:var(--font-en);border-radius:50%;place-items:center;display:grid}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border-subtle);padding:16px 12px;overflow-y:auto}.sidebar .section-label{letter-spacing:.16em;color:var(--text-muted);text-transform:uppercase;padding:12px 10px 6px;font-size:10px;font-weight:700}.sidebar .nav-item{border-radius:var(--r-md);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:500;display:flex}.sidebar .nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar .nav-item.active{background:var(--bg-card);color:var(--text-primary);border-color:var(--border-default)}.sidebar .nav-item .ico{opacity:.85;width:16px;height:16px}.sidebar .nav-item .count{background:var(--bg-input);color:var(--text-secondary);font-size:11px;font-family:var(--font-en);border-radius:10px;margin-left:auto;padding:2px 7px;font-weight:600}.sidebar .nav-item.active .count{color:var(--brand-orange);background:#ff7a1a29}.main{padding:24px 28px 64px;overflow-y:auto}[data-density=compact] .main{padding:16px 20px 48px}.page-head{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:22px;display:flex}.page-head h1{letter-spacing:-.01em;margin:0 0 4px;font-size:24px;font-weight:700}.page-head .sub{color:var(--text-secondary);font-size:13px}.page-head .actions{gap:8px;display:flex}.btn{border-radius:var(--r-md);background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-default);align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .12s;display:inline-flex}.btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn.primary{background:var(--brand-orange);color:#1a0e04;border-color:#0000}.btn.primary:hover{background:var(--brand-orange-soft)}.btn.ghost{background:0 0}.btn.success{background:var(--status-green);color:#fff;border-color:#0000}.btn.success:hover{filter:brightness(1.1)}.btn.danger{background:var(--status-red);color:#fff;border-color:#0000}.btn.danger:hover{filter:brightness(1.1)}.btn.sm{padding:6px 10px;font-size:12px}.btn.icon{padding:8px}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--pad-card)}.card.elevated{background:var(--bg-card);box-shadow:var(--shadow-card)}.stat{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);flex-direction:column;gap:6px;min-height:110px;padding:16px;display:flex;position:relative;overflow:hidden}.stat .label{letter-spacing:.12em;color:var(--text-tertiary);text-transform:uppercase;font-size:11px;font-weight:600}.stat .value{font-family:var(--font-en);letter-spacing:-.02em;font-size:32px;font-weight:700;line-height:1.05}.stat .delta{color:var(--text-secondary);font-size:12px}.stat .accent{background:var(--accent,var(--status-blue));height:3px;position:absolute;bottom:0;left:0;right:0}.chip{letter-spacing:.04em;font-size:11px;font-weight:700;font-family:var(--font-en);border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;display:inline-flex}.chip.sm{padding:2px 8px;font-size:10px}.chip-blue{background:var(--status-blue-bg);color:var(--status-blue);border-color:#3b82f64d}.chip-green{background:var(--status-green-bg);color:var(--status-green);border-color:#10b9814d}.chip-red{background:var(--status-red-bg);color:var(--status-red);border-color:#ef444459}.chip-orange{background:var(--status-orange-bg);color:var(--status-orange);border-color:#f59e0b59}.chip-purple{background:var(--status-purple-bg);color:var(--status-purple);border-color:#a855f74d}.chip-cyan{background:var(--status-cyan-bg);color:var(--status-cyan);border-color:#06b6d44d}.chip-gray{background:var(--status-gray-bg);color:var(--text-secondary);border-color:var(--border-default)}.chip-channel{font-family:var(--font-en);background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600}.chip-channel .dot{border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.input,.select{border-radius:var(--r-md);background:var(--bg-input);border:1px solid var(--border-default);width:100%;color:var(--text-primary);outline:none;padding:8px 12px;font-size:13px}.input:focus,.select:focus{border-color:var(--brand-orange)}.field-label{letter-spacing:.06em;color:var(--text-tertiary);text-transform:uppercase;margin-bottom:6px;font-size:11px;font-weight:600;display:block}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.table th{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);text-align:left;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);z-index:1;padding:10px 14px;font-size:11px;font-weight:700;position:sticky;top:0}.table td{height:var(--row-h);border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:0 14px}.table tr.row{cursor:pointer}.table tr.row:hover td{background:var(--bg-hover)}.table tr.row.active td{background:#ff7a1a0f}.table .num{font-family:var(--font-en);font-variant-numeric:tabular-nums}.table .id{font-family:var(--font-mono);color:var(--text-secondary);font-size:12px}.tabs{border-bottom:1px solid var(--border-subtle);gap:0;margin-bottom:18px;display:flex}.tabs .tab{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-size:13px;font-weight:600}.tabs .tab.active{color:var(--text-primary);border-bottom-color:var(--brand-orange)}.tabs .tab:hover:not(.active){color:var(--text-primary)}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#020612b8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}[data-theme=light] .modal-backdrop{background:#0f172a73}.modal{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-xl);width:100%;max-width:720px;max-height:calc(100vh - 60px);box-shadow:var(--shadow-pop);flex-direction:column;display:flex;overflow:hidden}.modal-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h3{margin:0;font-size:16px;font-weight:700}.modal-body{padding:22px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:8px;padding:14px 22px;display:flex}.icon-btn{cursor:pointer;width:32px;height:32px;color:var(--text-secondary);background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;display:grid}.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.timeline{padding-left:22px;position:relative}.timeline:before{content:"";background:var(--border-default);width:2px;position:absolute;top:6px;bottom:6px;left:7px}.timeline-item{padding-bottom:18px;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item .dot{background:var(--bg-card);border:2px solid var(--text-secondary);border-radius:50%;place-items:center;width:16px;height:16px;display:grid;position:absolute;top:4px;left:-22px}.timeline-item .dot.active{border-color:var(--brand-orange);background:var(--brand-orange)}.timeline-item .dot.done{border-color:var(--status-green);background:var(--status-green)}.timeline-item .dot.fail{border-color:var(--status-red);background:var(--status-red)}.timeline-item .when{color:var(--text-tertiary);font-size:11px;font-family:var(--font-en);margin-bottom:2px}.timeline-item .what{color:var(--text-primary);font-size:13px;font-weight:600}.timeline-item .who{color:var(--text-secondary);margin-top:2px;font-size:12px}.timeline-item .note{background:var(--bg-input);border-radius:var(--r-md);color:var(--text-secondary);border-left:2px solid var(--border-strong);margin-top:6px;padding:8px 12px;font-size:12px}.empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:60px 24px;display:flex}.empty .glyph{background:var(--bg-card);border:1px solid var(--border-subtle);width:56px;height:56px;color:var(--text-tertiary);border-radius:14px;place-items:center;display:grid}.empty h4{margin:0;font-size:15px;font-weight:700}.empty p{color:var(--text-secondary);max-width:420px;margin:0;font-size:13px}.sla-bar{background:var(--bg-input);border-radius:999px;height:6px;position:relative;overflow:hidden}.sla-bar>span{border-radius:999px;height:100%;display:block}.divider{background:var(--border-subtle);height:1px;margin:14px 0}.muted{color:var(--text-secondary)}.tiny{font-size:11px}.mono{font-family:var(--font-mono)}.en{font-family:var(--font-en)}.row-c{align-items:center;display:flex}.row-sb{justify-content:space-between;align-items:center;display:flex}.col{flex-direction:column;display:flex}.gap-2{gap:6px}.gap-3{gap:10px}.gap-4{gap:14px}.product-card{background:var(--bg-input);border-radius:var(--r-md);border:1px solid var(--border-subtle);gap:12px;padding:12px;display:flex}.product-card .thumb{border:1px solid var(--border-default);background:linear-gradient(135deg,#2a2f3f,#1b1f2e);border-radius:8px;flex-shrink:0;place-items:center;width:64px;height:64px;font-size:22px;display:grid;overflow:hidden}.product-card .thumb img{object-fit:cover;width:100%;height:100%}.product-card .meta{color:var(--text-secondary);font-size:12px}.product-card .name{color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:600}.product-card .sku{font-family:var(--font-mono);color:var(--text-tertiary);font-size:11px}.detail-grid{grid-template-columns:360px 1fr 360px;align-items:flex-start;gap:16px;display:grid}@media (max-width:1400px){.detail-grid{grid-template-columns:320px 1fr 320px}}.sla-pill{font-size:11px;font-weight:700;font-family:var(--font-en);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;display:inline-flex}.sla-pill.ok{background:var(--status-green-bg);color:var(--status-green)}.sla-pill.warn{background:var(--status-orange-bg);color:var(--status-orange)}.sla-pill.over{background:var(--status-red-bg);color:var(--status-red)}.pulse{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.6s infinite pulse;box-shadow:0 0}@keyframes pulse{0%{opacity:1;box-shadow:0 0}70%{opacity:.5;box-shadow:0 0 0 8px #0000}to{opacity:1;box-shadow:0 0 #0000}}.toast-wrap{z-index:100;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--r-md);box-shadow:var(--shadow-pop);border-left:3px solid var(--brand-orange);min-width:280px;max-width:380px;padding:12px 16px;font-size:13px;animation:.24s slidein}.toast.success{border-left-color:var(--status-green)}.toast.error{border-left-color:var(--status-red)}.toast .t-title{margin-bottom:2px;font-weight:700}.toast .t-body{color:var(--text-secondary);font-size:12px}@keyframes slidein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.filterbar{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);grid-template-columns:repeat(5,1fr) auto;gap:10px;margin-bottom:14px;padding:14px;display:grid}.quick-filters{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.quick-filters button{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600}.quick-filters button.active{color:var(--brand-orange);background:#ff7a1a1f;border-color:#ff7a1a66}.quick-filters button:hover:not(.active){color:var(--text-primary)}.center-screen{min-height:100vh;color:var(--text-secondary);place-items:center;font-size:14px;display:grid}
