:root{--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", monospace;--bg-primary: #f8f9fb;--bg-secondary: #ffffff;--bg-tertiary: #f1f3f9;--bg-hover: #edf0f7;--bg-active: #e4e8f2;--border-primary: #e8ecf4;--border-secondary: #d4dae6;--text-primary: #0f1729;--text-secondary: #4e5a6e;--text-tertiary: #8d96a6;--text-inverse: #ffffff;--accent: #4f46e5;--accent-light: #eef2ff;--accent-hover: #4338ca;--accent-muted: #a5b4fc;--positive: #10b981;--positive-bg: #ecfdf5;--positive-text: #065f46;--negative: #ef4444;--negative-bg: #fef2f2;--negative-text: #991b1b;--warning: #f59e0b;--warning-bg: #fffbeb;--warning-text: #92400e;--chart-1: #4f46e5;--chart-2: #8b5cf6;--chart-3: #06b6d4;--chart-4: #10b981;--chart-5: #f59e0b;--shadow-xs: 0 1px 2px rgba(15,23,41,.03);--shadow-sm: 0 1px 3px rgba(15,23,41,.04), 0 1px 2px rgba(15,23,41,.03);--shadow-md: 0 4px 16px rgba(15,23,41,.05), 0 1px 3px rgba(15,23,41,.03);--shadow-lg: 0 8px 30px rgba(15,23,41,.07), 0 2px 8px rgba(15,23,41,.03);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.5}.app-layout{display:flex;min-height:100vh}.sidebar{width:248px;background:var(--bg-secondary);border-right:1px solid var(--border-primary);padding:var(--space-6) 0;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:50}.sidebar-brand{padding:var(--space-2) var(--space-6) var(--space-6);border-bottom:1px solid var(--border-primary);margin-bottom:var(--space-4)}.sidebar-brand-badge{display:none}.sidebar-brand h1{font-size:22px;font-weight:800;color:var(--text-primary);letter-spacing:-.04em;line-height:1.1;background:linear-gradient(135deg,var(--text-primary) 40%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-nav{flex:1;padding:0 var(--space-3)}.nav-section-label{font-size:10px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.1em;padding:var(--space-6) var(--space-3) var(--space-2)}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:9px var(--space-3);border-radius:var(--radius-sm);font-size:13.5px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease;text-decoration:none;margin-bottom:2px;position:relative}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--accent-light);color:var(--accent);font-weight:600}.nav-item.active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;background:var(--accent);border-radius:0 3px 3px 0}.nav-item svg{width:18px;height:18px;flex-shrink:0}.nav-badge{margin-left:auto;font-size:9px;font-weight:700;color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 7px;border-radius:100px}.sidebar-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-primary)}.sidebar-footer-text{font-size:11px;color:var(--text-tertiary);display:flex;align-items:center;gap:6px;font-weight:500}.main-content{flex:1;margin-left:248px;padding:var(--space-8) var(--space-10) var(--space-12)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--border-primary)}.page-header-left h2{font-size:24px;font-weight:800;color:var(--text-primary);letter-spacing:-.03em}.page-header-left p{font-size:13px;color:var(--text-tertiary);margin-top:var(--space-1)}.period-selector{display:flex;gap:2px;background:var(--bg-tertiary);padding:3px;border-radius:var(--radius-sm);border:1px solid var(--border-primary)}.period-btn{padding:7px 16px;font-size:12.5px;font-weight:500;color:var(--text-tertiary);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:color .15s ease,background .15s ease;font-family:var(--font-sans)}.period-btn:hover{color:var(--text-secondary)}.period-btn.active{background:var(--bg-secondary);color:var(--text-primary);font-weight:600;box-shadow:var(--shadow-sm)}.period-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.card{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);transition:box-shadow .2s ease,border-color .2s ease;overflow:hidden;min-width:0;will-change:box-shadow}.card:hover{box-shadow:var(--shadow-md);border-color:var(--border-secondary)}.card-header{padding:var(--space-5) var(--space-6) 0;display:flex;align-items:center;justify-content:space-between}.card-title{font-size:14px;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.card-subtitle{font-size:11.5px;color:var(--text-tertiary);font-weight:500}.card-body{padding:var(--space-4) var(--space-6) var(--space-6)}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}.kpi-card{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);padding:var(--space-6) var(--space-6) var(--space-5);transition:box-shadow .2s ease,border-color .2s ease;position:relative;overflow:hidden;min-width:0;will-change:box-shadow}.kpi-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-secondary)}.kpi-label{font-size:11.5px;font-weight:600;color:var(--text-tertiary);margin-bottom:var(--space-2);display:flex;align-items:center;gap:var(--space-2);text-transform:uppercase;letter-spacing:.04em}.kpi-label svg{width:14px;height:14px}.kpi-value{font-size:32px;font-weight:800;color:var(--text-primary);letter-spacing:-.04em;font-feature-settings:"tnum";line-height:1.15}.kpi-change{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;margin-top:var(--space-3);padding:4px 12px;border-radius:100px}.kpi-change.positive{color:var(--positive-text);background:var(--positive-bg)}.kpi-change.negative{color:var(--negative-text);background:var(--negative-bg)}.kpi-change .vs-label{font-weight:500;opacity:.55;margin-left:3px;font-size:11.5px}.chart-grid{display:grid;gap:var(--space-5);margin-bottom:var(--space-5);align-items:start}.chart-grid-2{grid-template-columns:1fr 1fr}.chart-grid-full{grid-template-columns:1fr}.chart-grid-2-1{grid-template-columns:1.15fr 1fr}.recharts-cartesian-grid-horizontal line{stroke:var(--border-primary)}.recharts-cartesian-grid-vertical line{stroke:var(--border-primary)}.recharts-text{font-family:var(--font-sans);fill:var(--text-tertiary);font-size:11px}.custom-tooltip{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-lg);min-width:140px}.custom-tooltip .tt-label{font-size:11px;color:var(--text-tertiary);margin-bottom:var(--space-1);font-weight:500}.custom-tooltip .tt-value{font-size:16px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.custom-tooltip .tt-secondary{font-size:12px;color:var(--text-secondary);margin-top:2px}.data-table{width:100%;border-collapse:collapse}.data-table th{font-size:10.5px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:var(--space-3) var(--space-4);border-bottom:2px solid var(--border-primary);background:var(--bg-primary);position:sticky;top:0}.data-table td{font-size:13px;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-primary)}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background .1s ease}.data-table tbody tr:hover td{background:var(--bg-hover)}.data-table .mono{font-family:var(--font-mono);font-size:12px;font-weight:500}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 10px;border-radius:100px}.badge:before{content:"";width:5px;height:5px;border-radius:50%;flex-shrink:0}.badge.paid{color:var(--positive-text);background:var(--positive-bg)}.badge.paid:before{background:var(--positive)}.badge.pending{color:var(--warning-text);background:var(--warning-bg)}.badge.pending:before{background:var(--warning)}.badge.refunded{color:var(--negative-text);background:var(--negative-bg)}.badge.refunded:before{background:var(--negative)}.badge.fulfilled{color:var(--positive-text);background:var(--positive-bg)}.badge.fulfilled:before{background:var(--positive)}.badge.unfulfilled{color:var(--warning-text);background:var(--warning-bg)}.badge.unfulfilled:before{background:var(--warning)}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-hover) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.product-row{display:flex;align-items:center;gap:var(--space-3);padding:10px 0;border-bottom:1px solid var(--border-primary);transition:background .1s ease}.product-row:last-child{border-bottom:none}.product-rank{font-size:11px;font-weight:700;color:var(--text-tertiary);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:var(--bg-tertiary);flex-shrink:0}.product-info{flex:1;min-width:0}.product-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-meta{font-size:11px;color:var(--text-tertiary);margin-top:1px}.product-bar-wrap{width:100px;flex-shrink:0;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.product-bar{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--chart-2))}.product-value{font-size:13px;font-weight:700;color:var(--text-primary);font-family:var(--font-mono);text-align:right;width:85px;flex-shrink:0}.search-box{display:flex;align-items:center;gap:6px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);padding:5px 10px;width:220px;transition:border-color .15s ease}.search-box:focus-within{border-color:var(--accent)}.gran-toggle{display:flex;gap:2px;background:var(--bg-tertiary);padding:2px;border-radius:6px;border:1px solid var(--border-primary)}.gran-btn{padding:4px 12px;font-size:11px;font-weight:500;color:var(--text-tertiary);background:transparent;border:none;border-radius:4px;cursor:pointer;transition:color .15s ease,background .15s ease;font-family:var(--font-sans)}.gran-btn:hover{color:var(--text-secondary)}.gran-btn.active{background:var(--bg-secondary);color:var(--text-primary);font-weight:600;box-shadow:var(--shadow-xs)}@media (max-width: 1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.chart-grid-2,.chart-grid-2-1{grid-template-columns:1fr}}.orders-table .order-row{cursor:pointer;-webkit-user-select:none;user-select:none}.orders-table .order-row:hover td{background:var(--bg-hover)}.orders-table .order-row.expanded td{background:var(--accent-light);border-bottom-color:transparent}.orders-table .expand-cell{color:var(--text-tertiary);width:28px;padding-right:0;transition:color .15s ease}.expand-icon{display:inline-flex;transition:transform .3s cubic-bezier(.16,1,.3,1)}.expand-icon.open{transform:rotate(90deg)}.orders-table .order-row:hover .expand-cell,.orders-table .order-row.expanded .expand-cell{color:var(--accent)}.detail-row td{background:var(--bg-primary)!important}.order-detail{padding:var(--space-5) var(--space-8) var(--space-6);border-bottom:2px solid var(--border-primary)}.order-detail-section{margin-bottom:var(--space-5)}.order-detail-section-header{display:flex;align-items:center;gap:var(--space-2);font-size:12px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3)}.order-detail-section-header svg{color:var(--text-tertiary)}.order-detail-count{font-weight:500;color:var(--text-tertiary);text-transform:none;letter-spacing:0;margin-left:auto;font-size:12px}.order-detail-loading{display:flex;align-items:center;gap:var(--space-2);font-size:12px;color:var(--text-tertiary);padding:var(--space-4) 0}.order-detail-empty{font-size:12px;color:var(--text-tertiary);padding:var(--space-3) 0}@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:spin .8s linear infinite}.order-items-table-wrap{border:1px solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary)}.order-items-table{width:100%;border-collapse:collapse}.order-items-table th{font-size:10px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:var(--space-2) var(--space-4);background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary)}.order-items-table td{font-size:12.5px;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-primary);color:var(--text-primary)}.order-items-table tr:last-child td{border-bottom:none}.order-items-table .item-name{font-weight:500;max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-items-table .item-sku{font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary);font-weight:500}.order-detail-footer{padding-top:var(--space-4);border-top:1px solid var(--border-primary)}.order-summary-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:var(--space-6);align-items:start}.order-summary-item{display:flex;flex-direction:column;gap:4px}.order-summary-item svg{color:var(--text-tertiary);margin-bottom:2px}.order-summary-label{font-size:10.5px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.order-summary-value{font-size:14px;font-weight:600;color:var(--text-primary)}.discount-code{display:inline-flex;font-size:10.5px;font-weight:700;font-family:var(--font-mono);color:var(--accent);background:var(--accent-light);padding:2px 8px;border-radius:4px;width:fit-content}.order-summary-totals{min-width:200px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);padding:var(--space-3)}.summary-line{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary);padding:3px 0}.summary-line span:last-child{font-family:var(--font-mono);font-size:12px;font-weight:500}.summary-line.discount{color:var(--negative)}.summary-line.total{border-top:1px solid var(--border-primary);margin-top:4px;padding-top:6px;font-weight:700;font-size:13px;color:var(--text-primary)}.summary-line.total span:last-child{font-weight:700;font-size:13px}.summary-line.refund{color:var(--negative);font-weight:600}.pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-primary);background:var(--bg-secondary)}.pagination-info{font-size:12px;color:var(--text-tertiary);font-weight:500;min-width:120px}.pagination-controls{display:flex;align-items:center;gap:2px}.page-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 4px;font-size:12.5px;font-weight:500;font-family:var(--font-sans);color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:color .15s ease,background .15s ease}.page-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-primary);color:var(--text-primary)}.page-btn:disabled{opacity:.3;cursor:default}.page-btn.page-num{font-weight:600}.page-btn.active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent);font-weight:700}.page-btn.active:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--text-inverse)}.page-ellipsis{display:inline-flex;align-items:center;justify-content:center;width:28px;height:32px;font-size:12px;color:var(--text-tertiary);font-weight:600;letter-spacing:1px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:3px}.global-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#f8f9fb99;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:overlay-in .15s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.global-loading-spinner{display:flex;flex-direction:column;align-items:center;gap:14px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:28px 40px;box-shadow:var(--shadow-lg);animation:spinner-pop .2s cubic-bezier(.34,1.56,.64,1)}@keyframes spinner-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.spinner-svg{width:40px;height:40px;animation:spin .9s linear infinite}.spinner-track{stroke:var(--border-primary)}.spinner-arc{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:60 66;transform-origin:center}.spinner-label{font-size:12.5px;font-weight:600;color:var(--text-secondary);letter-spacing:.01em}.page-enter{animation:page-in .32s cubic-bezier(.16,1,.3,1) both}@keyframes page-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes kpi-reveal{0%{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.kpi-value{animation:kpi-reveal .45s cubic-bezier(.16,1,.3,1) both;animation-delay:.12s}.kpi-change{animation:scale-in .3s cubic-bezier(.34,1.56,.64,1) both;animation-delay:.22s}.card-title{display:inline-block;animation:fade-up .3s cubic-bezier(.16,1,.3,1) both;animation-delay:60ms}.sidebar-brand{animation:fade-up .4s cubic-bezier(.16,1,.3,1) both}.kpi-value,[style*=font-mono],.product-value{transition:color .2s ease}.skeleton-fade-out{animation:fade-in .35s ease both}@keyframes bar-fill{0%{width:0!important}}.product-bar{animation:bar-fill .7s cubic-bezier(.16,1,.3,1) both;transition:width .6s cubic-bezier(.16,1,.3,1),background .2s ease}@keyframes segment-bar-in{0%{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}.chart-refresh{animation:fade-in .25s ease both}.custom-tooltip{animation:tooltip-pop .16s cubic-bezier(.34,1.56,.64,1) both;transform-origin:bottom center}@keyframes tooltip-pop{0%{opacity:0;transform:scale(.9) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}button[class*=back],.back-btn{transition:background .15s ease,color .15s ease,transform .12s ease,border-color .15s ease}.back-btn:hover{transform:translate(-2px)}.cohort-cell{transition:opacity .15s ease,transform .15s cubic-bezier(.16,1,.3,1),box-shadow .15s ease}.cohort-cell:hover{opacity:1!important;transform:scale(1.12);box-shadow:0 2px 8px #00000026;z-index:2;position:relative}.gran-btn{position:relative;overflow:hidden}.gran-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);border-radius:4px;opacity:0;transform:scale(.7);transition:opacity .15s ease,transform .15s ease;pointer-events:none}.gran-btn:active:after{opacity:.08;transform:scale(1)}.period-btn{position:relative;overflow:hidden}.period-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);opacity:0;border-radius:6px;transform:scale(.5);transition:opacity .15s,transform .15s;pointer-events:none}.period-btn:active:after{opacity:.06;transform:scale(1)}.search-box svg{transition:color .15s ease,transform .15s ease}.search-box:focus-within svg{color:var(--accent);transform:scale(1.1)}.nav-item.active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;background:var(--accent);border-radius:0 3px 3px 0;animation:indicator-in .25s cubic-bezier(.16,1,.3,1) both}@keyframes indicator-in{0%{opacity:0;transform:scaleY(.3)}to{opacity:1;transform:scaleY(1)}}.expand-wrapper{transition:height .32s cubic-bezier(.16,1,.3,1),opacity .24s ease}.badge.paid:before,.badge.fulfilled:before{animation:badge-dot-pulse 2.5s ease infinite}@keyframes badge-dot-pulse{0%,to{opacity:1;box-shadow:0 0 #10b98166}50%{opacity:.7;box-shadow:0 0 0 3px #10b98100}}@keyframes tray-pop{0%{opacity:0;transform:scale(.94) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes xspin{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}button[title*=Export],button[title*=export]{transition:background .15s ease,color .15s ease,transform .12s ease,border-color .15s ease,box-shadow .15s ease!important}button[title*=Export]:hover,button[title*=export]:hover{background:var(--accent-light)!important;border-color:var(--accent-muted)!important;transform:scale(1.08)!important}button[title*=Export]:active,button[title*=export]:active{transform:scale(.94)!important}button:has(>svg+*):not(.nav-item):not(.gran-btn):not(.period-btn):not(.page-btn){transition:background .15s ease,border-color .15s ease,transform .12s ease,color .15s ease}button:active{transition-duration:.06s!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
