:root{--font:var(--font-sans);--border:var(--border-default);--text:var(--text-primary)}.text-kpi{font-size:var(--text-2xl);line-height:1.1;letter-spacing:var(--tracking-tighter)}.text-kpi,.text-kpi-md{font-family:var(--font-mono);font-weight:500;color:var(--text-primary)}.text-kpi-md{font-size:var(--text-xl);line-height:1.15;letter-spacing:var(--tracking-tight)}.text-kpi-sm{font-family:var(--font-mono);font-size:var(--text-lg);line-height:1.2;font-weight:500;color:var(--text-primary)}.text-body{font-size:var(--text-base);line-height:1.55;font-weight:400;color:var(--text-secondary)}.text-body-strong{font-size:var(--text-base);line-height:1.5;font-weight:500;color:var(--text-primary)}.text-small{font-size:var(--text-sm);line-height:1.45;font-weight:400}.text-small,.text-tiny{color:var(--text-tertiary)}.text-tiny{font-size:var(--text-2xs);line-height:1.4;font-weight:500;letter-spacing:var(--tracking-wider);text-transform:uppercase}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1;box-sizing:border-box;margin:0;padding:0}html{font-size:13px;text-size-adjust:100%}body{font-family:var(--font-sans);font-weight:400;font-size:1rem;line-height:1.55;letter-spacing:0;color:var(--text-primary);background:var(--bg-page);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;transition:background-color var(--duration-slow) var(--ease-out),color var(--duration-slow) var(--ease-out)}.h1,h1{font-size:var(--text-2xl);line-height:1.2;letter-spacing:var(--tracking-tighter)}.h1,.h2,h1,h2{font-weight:600;color:var(--text-primary)}.h2,h2{font-size:var(--text-xl);line-height:1.3;letter-spacing:var(--tracking-tight)}.h3,h3{font-size:var(--text-lg);line-height:1.35;font-weight:600;color:var(--text-primary)}.h4,h4{font-weight:600}.h4,h4,h5{font-size:var(--text-base);line-height:1.4;color:var(--text-primary)}h5,h6{font-weight:500}h6{font-size:var(--text-xs);line-height:1.4;color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.kpi-value,.page-title,.ph__title,.ui-card__title,.ui-kpi__value,h1,h2,h3,h4,h5,h6{text-rendering:optimizeLegibility;font-feature-settings:"kern" 1,"liga" 1}@media (max-width:640px){.h1,h1{font-size:20px}.h2,h2{font-size:18px}}.form-label,.kpi-label,.sb__group-label,.ui-kpi__label,.ui-table th,table th{letter-spacing:var(--tracking-wide);font-weight:500}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}.font-display{font-family:var(--font-sans);font-weight:600;letter-spacing:var(--tracking-tighter)}.font-mono{font-family:var(--font-mono)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::selection{background:var(--brand-100);color:var(--brand-900)}::-moz-selection{background:var(--brand-100);color:var(--brand-900)}:focus{outline:none}:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px;border-radius:var(--radius-sm)}.link,a.link{color:var(--brand-600);transition:color var(--duration-fast) var(--ease-out);text-decoration:none}.link:hover{color:var(--brand-700);text-decoration:underline}@keyframes pageIn{0%{opacity:0}to{opacity:1}}.page-enter{animation:pageIn .18s var(--ease-out) forwards;will-change:opacity}@media (prefers-reduced-motion:reduce){.page-enter{animation:none}}.page{padding:20px 24px;width:100%}.page-title{font-size:var(--text-2xl);font-weight:500;color:var(--text-primary);line-height:1.25;letter-spacing:var(--tracking-tight)}.page-sub{font-size:var(--text-base);color:var(--text-secondary);margin-top:4px;font-weight:400}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px;flex-wrap:wrap}@media (max-width:768px){.page{padding:16px 14px env(safe-area-inset-bottom,14px)}.page-title{font-size:var(--text-xl)}}.card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);transition:border-color var(--duration-fast) var(--ease-out)}.card:hover{border-color:var(--border-strong)}.card-elevated{box-shadow:var(--shadow-sm)}.card-pad{padding:16px 18px}.card-pad-sm{padding:12px 14px}table{border-collapse:separate;border-spacing:0;width:100%;font-family:var(--font-sans)}th{text-align:left;padding:10px 14px;font-size:var(--text-2xs);font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wide);background:var(--bg-surface-muted);border-bottom:1px solid var(--border-default);white-space:nowrap}td{padding:12px 14px;font-size:var(--text-base);color:var(--text-primary);font-weight:400;border-bottom:1px solid var(--border-subtle);vertical-align:middle}tbody tr{transition:background var(--duration-fast) var(--ease-out)}tbody tr:hover td{background:var(--bg-surface-muted)}tbody tr:last-child td{border-bottom:none}.table-wrap{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-surface);box-shadow:var(--shadow-xs)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:middle}@media (max-width:768px){.page :has(>table){overflow-x:auto!important;-webkit-overflow-scrolling:touch}.page table{min-width:max-content}.page td,.page th{padding:10px 12px;font-size:var(--text-sm)}}.tag-ocean{background:var(--brand-50);color:var(--brand-700)}.tag-teal{background:var(--success-bg);color:var(--success-fg)}.tag-amber{background:var(--warning-bg);color:var(--warning-fg)}.tag-red{background:var(--danger-bg);color:var(--danger-fg)}.tag-amber,.tag-ocean,.tag-red,.tag-teal{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;line-height:1.4;white-space:nowrap;font-family:var(--font-sans)}.platform-shopee{background:rgba(238,77,45,.1);color:var(--mp-shopee)}.platform-tiktok{background:rgba(254,44,85,.1);color:var(--mp-tiktok)}.platform-lazada{background:rgba(26,26,140,.1);color:var(--mp-lazada)}.platform-tokopedia{background:rgba(3,172,14,.1);color:var(--mp-tokopedia)}.platform-lazada,.platform-shopee,.platform-tiktok,.platform-tokopedia{gap:4px;line-height:1.4;white-space:nowrap}.brand-pill,.platform-lazada,.platform-shopee,.platform-tiktok,.platform-tokopedia{display:inline-flex;align-items:center;padding:1px 6px;border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:500;font-family:var(--font-sans)}.brand-pill{background:transparent;border:1px solid var(--border-strong);color:var(--text-tertiary)}.badge-ai{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:var(--radius-sm);background:var(--brand-600);color:#FFFFFF;font-size:var(--text-xs);font-weight:500;line-height:1.4;white-space:nowrap;font-family:var(--font-sans)}.badge-ai svg{width:11px;height:11px;flex-shrink:0}.badge-ai-soft{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:var(--radius-sm);background:var(--brand-50);color:var(--brand-700);font-size:var(--text-xs);font-weight:500;line-height:1.4;white-space:nowrap;border:1px solid var(--brand-200);font-family:var(--font-sans)}.badge-ai-soft svg{width:11px;height:11px;flex-shrink:0}.badge{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;line-height:1.4;white-space:nowrap;font-family:var(--font-sans)}.badge-green{background:var(--success-bg);color:var(--success-fg);border:1px solid rgba(22,163,74,.3)}.badge-blue{background:var(--brand-50);color:var(--brand-700);border:1px solid var(--brand-200)}.badge-amber{background:var(--warning-bg);color:var(--warning-fg);border:1px solid rgba(217,119,6,.3)}.badge-red{background:var(--danger-bg);color:var(--danger-fg);border:1px solid rgba(220,38,38,.3)}.badge-gray{background:var(--bg-surface-muted);color:var(--text-tertiary);border:1px solid var(--border-default)}.badge-purple{background:rgba(147,51,234,.1);color:#6B21A8;border:1px solid rgba(147,51,234,.3)}.badge-orange{background:rgba(249,115,22,.1);color:#9A3412;border:1px solid rgba(249,115,22,.3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;height:32px;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:500;cursor:pointer;border:none;font-family:var(--font-sans);line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-xs);transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.btn:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--brand-600);color:#FFFFFF;box-shadow:var(--primary-shadow)}.btn-primary:hover:not(:disabled){background:var(--brand-700)}.btn-accent{background:var(--brand-600);color:#FFFFFF;font-weight:500}.btn-accent:hover:not(:disabled){background:var(--brand-700)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg-surface-muted);border-color:var(--brand-600);color:var(--brand-700)}.btn-ghost{background:transparent;color:var(--text-tertiary);box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--bg-surface-muted);color:var(--text-primary)}.btn-danger{background:var(--danger-bg);color:var(--danger-fg);border:1px solid rgba(220,38,38,.3);box-shadow:none}.btn-danger:hover:not(:disabled){background:rgba(220,38,38,.16)}.btn-sm{height:28px;padding:0 10px;font-size:var(--text-sm);border-radius:var(--radius-sm)}.btn-lg{height:38px;padding:0 18px;font-size:var(--text-lg);border-radius:var(--radius-md)}.btn-block{width:100%}input,select,textarea{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-primary);font-weight:400;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:0 10px;height:32px;outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);width:100%}textarea{padding:8px 10px;height:auto;min-height:80px;resize:vertical;line-height:1.5}input:hover:not(:focus),select:hover:not(:focus),textarea:hover:not(:focus){border-color:var(--neutral-400)}input:focus,select:focus,textarea:focus{border-color:var(--brand-600);box-shadow:var(--shadow-focus)}input::placeholder,textarea::placeholder{color:var(--text-disabled);font-weight:400}.form-row{display:flex;flex-direction:column;gap:6px}.form-label{display:block;font-size:var(--text-2xs);font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-bottom:4px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpi-grid-3{grid-template-columns:repeat(3,1fr)}.kpi-grid-2{grid-template-columns:repeat(2,1fr)}@media (max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.kpi-grid{grid-template-columns:1fr;gap:10px}}.kpi-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:12px 14px;position:relative;overflow:hidden;box-shadow:var(--shadow-xs);transition:border-color var(--duration-fast) var(--ease-out)}.kpi-card:hover{border-color:var(--border-strong)}.kpi-card__corner-icon{position:absolute;top:12px;right:14px;opacity:.25;color:var(--text-tertiary)}.kpi-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin-bottom:4px}.kpi-label,.kpi-value{font-weight:500;color:var(--text-primary)}.kpi-value{font-family:var(--font-mono);font-size:var(--text-2xl);line-height:1.1;letter-spacing:var(--tracking-tighter)}.kpi-sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:4px;font-weight:400}@media (max-width:600px){.page [style*=grid-template-columns]{grid-template-columns:1fr!important}.page-header{flex-direction:column;align-items:stretch}.kpi-card{padding:10px 12px}.kpi-value{font-size:var(--text-xl)}}.empty-state{flex-direction:column;text-align:center;padding:36px 20px;border:1px dashed var(--border-strong);background:var(--bg-surface)}.empty-state,.empty-state__icon{display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md)}.empty-state__icon{width:44px;height:44px;background:var(--bg-surface-muted);color:var(--text-tertiary);margin-bottom:12px}.empty-state__title{font-size:var(--text-lg);font-weight:500;color:var(--text-primary);letter-spacing:var(--tracking-tight);margin-bottom:4px}.empty-state__desc{font-size:var(--text-base);color:var(--text-tertiary);max-width:320px;line-height:1.5;margin-bottom:12px}.empty-state__cta{margin-top:4px}.empty{padding:36px 20px;text-align:center}.empty,.empty-icon{color:var(--text-tertiary)}.empty-icon{width:44px;height:44px;border-radius:var(--radius-md);background:var(--bg-surface-muted);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}.empty-title{font-size:var(--text-lg);font-weight:500;color:var(--text-primary);margin-bottom:4px;letter-spacing:var(--tracking-tight)}.empty-sub{font-size:var(--text-base);color:var(--text-tertiary);max-width:340px;margin:0 auto 12px}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#ffffff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.spinner-sm{width:12px;height:12px;border-width:2px}.spinner-lg{width:28px;height:28px;border-width:3px;border-top-color:var(--brand-600);border-color:var(--brand-100)}@keyframes spin{to{transform:rotate(1turn)}}.theme-toggle{display:inline-flex;background:var(--bg-elevated);border:1px solid var(--line);border-radius:7px;padding:2px;gap:2px}.theme-toggle button{border:none;background:transparent;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-3);border-radius:5px;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.theme-toggle button:hover{color:var(--text-1)}.theme-toggle button.active{background:var(--text-1);color:var(--bg-app)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInOnly{0%{opacity:0}to{opacity:1}}.btn,a,button{touch-action:manipulation}@media (max-width:768px){.ui-input,.ui-select,.ui-textarea,input,select,textarea{font-size:16px}.btn,.ui-btn{min-height:36px}.btn-sm,.ui-btn--sm{min-height:32px}body{padding-bottom:env(safe-area-inset-bottom,0)}}.momentum-scroll,.sb__nav,.table-wrap,.ui-table-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}