@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--color-primary: #635bff;--color-primary-dark: #4f46e5;--color-primary-light: #818cf8;--color-secondary: #00897b;--color-secondary-dark: #006b60;--color-secondary-light: #26a69a;--color-accent: #f59e0b;--color-accent-dark: #d97706;--color-accent-light: #fbbf24;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-past-due: #f97316;--color-bg: #f6f9fc;--color-bg-card: #ffffff;--color-bg-elevated: #ffffff;--color-bg-hover: #f1f5f9;--color-bg-active: #e2e8f0;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-border-dark: #cbd5e1;--color-text: #1e293b;--color-text-secondary: #64748b;--color-text-tertiary: #94a3b8;--color-text-inverse: #ffffff;--chart-1: #635bff;--chart-2: #00897b;--chart-3: #f59e0b;--chart-4: #e11d48;--chart-5: #0891b2;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-tooltip: 400}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg);min-height:100vh}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--space-4)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.app-container{min-height:100vh;display:flex;flex-direction:column}.app-header{background-color:var(--color-bg-card);border-bottom:1px solid var(--color-border);padding:var(--space-4) var(--space-6);position:sticky;top:0;z-index:var(--z-sticky)}.app-header-content{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.app-logo{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);display:flex;align-items:center;gap:var(--space-2)}.app-header-actions{display:flex;align-items:center;gap:var(--space-4)}.app-main{flex:1;padding:var(--space-6);max-width:1400px;margin:0 auto;width:100%}.card{background-color:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-light);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}.card-subtitle{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-top:var(--space-1)}.card-body{padding:var(--space-5)}.metric-card{padding:var(--space-4)}.metric-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:var(--space-1);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.03em}.metric-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:1.2}.metric-subtext{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-1)}.metric-positive{color:var(--color-success)}.metric-negative{color:var(--color-error)}.grid{display:grid;gap:var(--space-5)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1200px){.grid-cols-4,.grid-cols-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid-cols-4,.grid-cols-3,.grid-cols-2{grid-template-columns:repeat(1,1fr)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-bg-card);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background-color:var(--color-bg-hover)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn-link{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-decoration:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:color var(--transition-fast),background-color var(--transition-fast)}.btn-link:hover{color:var(--color-text);background-color:var(--color-bg-hover)}.upload-page{max-width:720px;margin:0 auto;padding:var(--space-8) var(--space-4)}.upload-hero{text-align:center;margin-bottom:var(--space-10)}.upload-hero-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0 0 var(--space-3) 0;letter-spacing:-.02em}.upload-hero-subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin:0;font-weight:var(--font-weight-normal)}.upload-card{margin-bottom:var(--space-10)}.upload-dropzone{border:2px dashed var(--color-border-dark);border-radius:var(--radius-lg);padding:var(--space-10);background-color:var(--color-bg-card);cursor:pointer;transition:all var(--transition-normal);text-align:center}.upload-dropzone:hover{border-color:var(--color-primary);background-color:var(--color-bg-hover)}.upload-dropzone-active{border-color:var(--color-primary);background-color:var(--color-bg-hover);transform:scale(1.01);box-shadow:var(--shadow-md)}.upload-dropzone-icon{width:48px;height:48px;margin:0 auto var(--space-4);color:var(--color-text-tertiary)}.upload-dropzone-icon svg{width:100%;height:100%}.upload-dropzone:hover .upload-dropzone-icon{color:var(--color-primary)}.upload-dropzone-content{display:flex;flex-direction:column;gap:var(--space-1)}.upload-dropzone-primary{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text)}.upload-dropzone-secondary{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.upload-error{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:#ef444414;border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm)}.upload-features{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);margin-bottom:var(--space-8)}.upload-feature{text-align:center}.upload-feature-icon{width:40px;height:40px;margin:0 auto var(--space-3);color:var(--color-text-tertiary)}.upload-feature-icon svg{width:100%;height:100%}.upload-feature-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-2) 0}.upload-feature-desc{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0;line-height:var(--line-height-relaxed)}.upload-instructions{text-align:left;padding:var(--space-5) var(--space-6);background:var(--color-bg-hover);border-radius:var(--radius-md);margin-bottom:var(--space-8);max-width:480px;margin-left:auto;margin-right:auto}.upload-instructions-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-4) 0;text-align:center}.upload-steps-list{list-style:none;margin:0;padding:0;counter-reset:step-counter}.upload-steps-list li{counter-increment:step-counter;font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-2) 0;padding-left:var(--space-6);position:relative;line-height:1.5}.upload-steps-list li:before{content:counter(step-counter);position:absolute;left:0;width:20px;height:20px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:50%;font-size:11px;font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);display:flex;align-items:center;justify-content:center}.upload-steps-list li strong{color:var(--color-text)}.upload-steps-list li em{font-style:normal;color:var(--color-primary)}.upload-footer{text-align:center;padding-top:var(--space-6);border-top:1px solid var(--color-border-light);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.footer-link{color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-fast)}.footer-link:hover{color:var(--color-text)}.upload-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center}.upload-loading-spinner{width:32px;height:32px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:var(--space-4)}@keyframes spin{to{transform:rotate(360deg)}}.upload-loading-bar{width:200px;height:4px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-3)}.upload-loading-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width .15s ease-out}.upload-loading-text{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:0}.upload-section-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-3) 0}.upload-card-compact{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4)}.upload-optional-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.upload-optional-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.upload-optional-badge{font-size:10px;font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);background:var(--color-bg-hover);padding:2px 6px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.03em}.upload-dropzone-compact{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px dashed var(--color-border-dark);border-radius:var(--radius-md);background:var(--color-bg);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.upload-dropzone-compact:hover{border-color:var(--color-primary);background:var(--color-bg-hover);color:var(--color-primary)}.upload-dropzone-compact svg{color:var(--color-text-tertiary);flex-shrink:0}.upload-dropzone-compact:hover svg{color:var(--color-primary)}.upload-success-state{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:#10b9810f;border:1px solid rgba(16,185,129,.2);border-radius:var(--radius-lg)}.upload-success-info{display:flex;align-items:center;gap:var(--space-3)}.upload-success-details{display:flex;flex-direction:column;gap:2px}.upload-success-filename{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.upload-success-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.upload-success-state-compact{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:#10b9810f;border:1px solid rgba(16,185,129,.2);border-radius:var(--radius-md)}.upload-success-state-compact .upload-success-info{gap:var(--space-2)}.upload-success-state-compact .upload-success-filename{font-size:var(--font-size-sm)}.upload-success-state-compact .upload-success-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.btn-text-small{background:none;border:none;color:var(--color-text-tertiary);font-size:var(--font-size-xs);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.btn-text-small:hover{color:var(--color-text);background:var(--color-bg-hover)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.btn-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-analyze{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;font-family:var(--font-family);font-size:13px;font-weight:500;color:#fff;background:linear-gradient(135deg,#1e293b,#334155);border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.btn-analyze:hover{background:linear-gradient(135deg,#334155,#475569);box-shadow:0 4px 6px #0000001f,0 2px 4px #00000014;transform:translateY(-1px)}.btn-analyze:active{background:linear-gradient(135deg,#1e293b,#334155);transform:translateY(0);box-shadow:0 1px 2px #0000001f}.btn-analyze svg{flex-shrink:0}.btn-analyze-disabled{opacity:.4;cursor:not-allowed;pointer-events:none;background:#94a3b8;box-shadow:none}.btn-reset{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;font-family:var(--font-family);font-size:13px;font-weight:500;color:var(--color-text-secondary);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s ease}.btn-reset:hover{background:var(--color-bg-hover);border-color:var(--color-border-dark);color:var(--color-text)}.btn-reset:active{background:var(--color-bg-active)}.btn-reset:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-reset svg{flex-shrink:0}.upload-actions{display:flex;justify-content:center;gap:12px;margin-top:8px;margin-bottom:48px}.dashboard{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.section-header{margin-bottom:var(--space-4)}.section-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.section-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0 0}.mb-6{margin-bottom:var(--space-6)}.mt-6{margin-top:var(--space-6)}.date-picker-wrapper{position:relative}.date-picker-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.date-picker-btn:hover{border-color:var(--color-primary);color:var(--color-text);box-shadow:0 0 0 3px #635bff14}.date-picker-btn.active{background:#635bff14;border-color:var(--color-primary);color:var(--color-primary)}.date-picker-btn .date-picker-icon{width:16px;height:16px;flex-shrink:0}.date-picker-btn .date-picker-chevron{width:14px;height:14px;opacity:.6}.date-picker-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-4);z-index:var(--z-dropdown);min-width:300px;animation:dropdownFadeIn .15s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.date-picker-quick{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-bottom:var(--space-3);margin-bottom:var(--space-3);border-bottom:1px solid var(--color-border-light)}.date-picker-quick button{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-family:var(--font-family);color:var(--color-text-secondary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.date-picker-quick button:hover{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.date-picker-quick .clear-btn{color:var(--color-error);border-color:transparent;background:#ef444414}.date-picker-quick .clear-btn:hover{background:var(--color-error);color:var(--color-text-inverse)}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.calendar-month{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.nav-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast)}.nav-btn:hover{background:var(--color-bg-hover);color:var(--color-text)}.nav-btn svg{width:16px;height:16px}.calendar-days-header{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:var(--space-2)}.day-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);text-align:center;padding:var(--space-1)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--color-text);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.calendar-day:hover:not(.empty):not(.disabled){background:var(--color-bg-hover)}.calendar-day.empty{cursor:default}.calendar-day.disabled{color:var(--color-text-tertiary);opacity:.4;cursor:not-allowed}.calendar-day.today{font-weight:var(--font-weight-semibold);color:var(--color-primary)}.calendar-day.in-range{background:#635bff1a;border-radius:0}.calendar-day.selected{background:var(--color-primary);color:var(--color-text-inverse);font-weight:var(--font-weight-semibold);border-radius:var(--radius-md)}.selection-hint{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-light);font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-6)}.dashboard-header-left{flex:1}.dashboard-header-right{display:flex;align-items:center;gap:var(--space-3)}.revenue-chart-card{overflow:visible}.chart-container{width:100%;height:320px}.chart-tooltip{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-lg)}.chart-tooltip-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin:0 0 var(--space-1) 0}.chart-tooltip-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0 0 var(--space-1) 0}.chart-tooltip-subscribers{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0}.cohort-table-container{overflow-x:auto}.cohort-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.cohort-table th,.cohort-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border-light)}.cohort-table th{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.03em;background-color:var(--color-bg);position:sticky;top:0}.cohort-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.cohort-table th.sortable:hover{color:var(--color-text)}.sort-icon{width:14px;height:14px;display:inline-block;vertical-align:middle;margin-left:4px}.sort-icon-inactive{opacity:.3}.sort-icon-active{color:var(--color-primary);opacity:1}.cohort-table tbody tr:hover{background-color:var(--color-bg-hover)}.cohort-table td{color:var(--color-text)}.cohort-table .revenue{font-weight:var(--font-weight-semibold);color:var(--color-success)}.cohort-table .active-users{color:var(--color-success)}.cohort-table .past-due-users{color:var(--color-past-due)}.cohort-table .cancelled-users{color:var(--color-error)}.cohort-table .total-row{background-color:var(--color-bg);font-weight:var(--font-weight-semibold)}.cohort-table .total-row td{border-top:2px solid var(--color-border)}.status-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full)}.status-badge-active{background-color:#10b9811a;color:var(--color-success)}.status-badge-past-due{background-color:#f973161a;color:var(--color-past-due)}.marketing-table{width:100%}.marketing-actions{display:flex;gap:var(--space-2)}.btn-xs{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs)}.btn-ghost{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);font-family:var(--font-family);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.btn-ghost:hover{background:var(--color-bg-hover);color:var(--color-text)}.marketing-row{transition:background-color var(--transition-fast)}.marketing-row:hover{background-color:var(--color-bg-hover)}.marketing-row-source{font-weight:var(--font-weight-semibold);background-color:#635bff08}.marketing-row-campaign{background-color:#635bff05}.marketing-row-adSet{background-color:#635bff03}.marketing-row-ad{color:var(--color-text-secondary)}.marketing-cell-content{display:flex;align-items:center;gap:var(--space-2)}.expand-btn{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast);flex-shrink:0}.expand-btn:hover{background:var(--color-bg-active);color:var(--color-primary)}.expand-icon{width:14px;height:14px;transition:transform var(--transition-fast)}.expand-icon.expanded{transform:rotate(90deg)}.expand-placeholder{width:20px;flex-shrink:0}.marketing-name{display:flex;align-items:center;gap:var(--space-2);min-width:0}.marketing-level-badge{font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-tertiary);flex-shrink:0}.marketing-row-source .marketing-level-badge{background:#635bff1a;color:var(--color-primary)}.marketing-row-campaign .marketing-level-badge{background:#00897b1a;color:var(--color-secondary)}.marketing-row-adSet .marketing-level-badge{background:#f59e0b1a;color:var(--color-accent-dark)}.marketing-row-ad .marketing-level-badge{background:var(--color-bg);color:var(--color-text-tertiary)}.marketing-row-date{background:#3b82f608}.marketing-row-date:hover{background:#3b82f60f}.marketing-level-badge-date{background:#3b82f61a!important;color:var(--color-info)!important}.toggle-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.toggle-label:hover{background:var(--color-bg-hover)}.toggle-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.toggle-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.breakdown-select-wrapper{position:relative;display:inline-flex;align-items:center}.breakdown-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-1) var(--space-8) var(--space-1) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);min-width:130px}.breakdown-select:hover{border-color:var(--color-border-dark);background:var(--color-bg-hover)}.breakdown-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #635bff1a}.breakdown-select-icon{position:absolute;right:8px;width:16px;height:16px;color:var(--color-text-secondary);pointer-events:none}.marketing-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-family)}.summary-section{display:flex;gap:var(--space-4);margin-bottom:var(--space-6)}.summary-card{flex:1;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.summary-card-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-3)}.summary-card-icon.revenue{background-color:#10b9811a;color:var(--color-success)}.summary-card-icon.users{background-color:#635bff1a;color:var(--color-primary)}.summary-card-icon.active{background-color:#10b9811a;color:var(--color-success)}.summary-card-icon.past-due{background-color:#f973161a;color:var(--color-past-due)}.app-footer{text-align:center;padding:var(--space-6);border-top:1px solid var(--color-border-light);font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-8)}.app-footer p{margin:0}@media (max-width: 640px){.app-header{padding:var(--space-3) var(--space-4)}.app-logo{font-size:var(--font-size-base)}.app-main{padding:var(--space-4)}.upload-features{grid-template-columns:1fr;gap:var(--space-4)}.date-picker-container{flex-direction:column;align-items:stretch}.date-picker-actions{margin-left:0;margin-top:var(--space-3)}.summary-section{flex-direction:column}}.top-spenders-table{width:100%}.top-spender-row{transition:background-color var(--transition-fast)}.top-spender-row:hover{background-color:var(--color-bg-hover)}.top-spender-row .customer-id{display:flex;align-items:center;gap:var(--space-2)}.rank-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;font-size:11px;font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);background:var(--color-bg);color:var(--color-text-secondary)}.top-spender-row:nth-child(1) .rank-badge{background:linear-gradient(135deg,gold,#ffb800);color:#7a5c00}.top-spender-row:nth-child(2) .rank-badge{background:linear-gradient(135deg,silver,#a8a8a8);color:#555}.top-spender-row:nth-child(3) .rank-badge{background:linear-gradient(135deg,#cd7f32,#b87333);color:#5a3a1a}.customer-id-text{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ad-badge{display:inline-block;padding:2px 8px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:#635bff1a;color:var(--color-primary);border-radius:var(--radius-sm);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-data{color:var(--color-text-tertiary)}
