*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;color:#1a202c;line-height:1.6}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center;padding:2rem 1rem;box-shadow:0 2px 4px #0000001a}.app-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.app-header p{font-size:1.1rem;opacity:.9;max-width:600px;margin:0 auto}.app-main{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.upload-view{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;gap:3rem}.upload-container{background:#fff;border-radius:12px;padding:3rem;text-align:center;box-shadow:0 4px 6px #0000001a;max-width:500px;width:100%}.upload-container h2{color:#2d3748;margin-bottom:1rem;font-size:1.8rem}.upload-container p{color:#718096;margin-bottom:2rem;font-size:1rem}.file-input{display:none}.upload-button{display:inline-block;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem 2rem;border-radius:8px;cursor:pointer;font-size:1.1rem;font-weight:600;transition:transform .2s,box-shadow .2s;border:none}.upload-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.how-it-works-section{width:100%;max-width:1000px;margin:0 auto}.how-it-works-section h2{text-align:center;color:#2d3748;font-size:2rem;font-weight:700;margin-bottom:2rem}.steps-container{display:flex;justify-content:space-around;gap:20px}.step-card{flex:1;background:#fff;border-radius:12px;padding:2rem;text-align:center;box-shadow:0 4px 6px #0000001a;border:2px solid #e2e8f0;transition:transform .2s,box-shadow .2s}.step-card:hover{transform:translateY(-2px);box-shadow:0 8px 15px #00000026}.step-number{display:inline-block;width:3rem;height:3rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;font-size:1.5rem;font-weight:700;line-height:3rem;margin-bottom:1rem}.step-text{color:#4a5568;font-size:1rem;font-weight:500;line-height:1.5}.column-mapper{display:flex;justify-content:center;align-items:center;min-height:60vh}.mapper-container{background:#fff;border-radius:12px;padding:3rem;box-shadow:0 4px 6px #0000001a;width:100%}@media (min-width: 1024px){.mapper-container{max-width:1200px;padding:3rem 4rem}}.mapper-container h2{color:#2d3748;margin-bottom:1rem;font-size:1.8rem;text-align:center}.mapper-container p{color:#718096;margin-bottom:2rem;text-align:center}.mapping-form{display:flex;flex-direction:column;gap:2rem}@media (min-width: 1024px){.mapping-form{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}}.required-section{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;padding:2rem;height:fit-content}.required-section h3{color:#2d3748;font-size:1.3rem;font-weight:700;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem}.required-section h3:before{content:"✓";background:#38a169;color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700}.required-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1.5rem}@media (min-width: 1024px){.required-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}}.optional-section{background:#fdfcf6;border:2px dashed #cbd5e0;border-radius:12px;padding:2rem;height:fit-content}.optional-section h3{color:#4a5568;font-size:1.2rem;font-weight:600;margin-bottom:.5rem}.optional-section p{color:#718096;font-size:.9rem;margin-bottom:1.5rem}.optional-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}@media (min-width: 1024px){.optional-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}}.optional-section .form-group small{display:block;color:#718096;font-size:.8rem;margin-top:.5rem;font-style:italic}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#2d3748;font-size:1rem}.column-select{padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;background:#fff;transition:border-color .2s}.column-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.button-group{display:flex;gap:1rem;margin-top:1rem}.back-button{flex:1;padding:.75rem 1.5rem;background:#e2e8f0;color:#4a5568;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:background-color .2s}.back-button:hover{background:#cbd5e0}.analyze-button{flex:2;padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s}.analyze-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.dashboard{width:100%}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.dashboard-header h2{color:#2d3748;font-size:2rem;font-weight:700}.dashboard-content{width:100%;display:flex;flex-direction:column;gap:2rem}.dashboard-row{display:flex;gap:2rem;width:100%}.headlines-row{justify-content:space-between}.headlines-row .widget{flex:1}.performance-row{justify-content:space-between}.performance-row .widget{flex:1}.charts-row{justify-content:space-between}.charts-row .widget{flex:1}.widget{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000001a;transition:transform .2s,box-shadow .2s}.widget:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.widget h3{color:#2d3748;font-size:1.3rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.summary-stats{display:flex;flex-direction:column;gap:1.5rem}.stat{text-align:center}.stat-label{color:#718096;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.stat-value{font-size:1.5rem;font-weight:700}.stat-value.revenue{color:#38a169}.stat-value.transactions{color:#667eea}.metric-card{text-align:center;padding:2rem}.metric-card h3{margin-bottom:1.5rem;color:#2d3748;font-size:1.2rem;font-weight:600}.metric-value{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.metric-value.revenue{color:#38a169}.metric-value.transactions{color:#667eea}.metric-subtitle{font-size:1.1rem;color:#718096;font-weight:500;margin-top:.5rem}.summary-card,.chart-card{padding:2rem}.chart-container{height:300px;width:100%}.insight-content{text-align:center}.spend-comparison{display:flex;flex-direction:column;gap:1.5rem}.spend-metric{text-align:center}.insight-label{color:#718096;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.insight-value{font-size:1.8rem;font-weight:700}.insight-value.primary{color:#e53e3e;font-size:2.2rem}.insight-value.secondary{color:#38a169;font-size:1.6rem}.pie-chart{height:250px}.pie-chart-small{height:180px}.payment-chart-wrapper{height:180px;width:100%;display:flex;align-items:center;justify-content:center}.flow-stats{display:flex;flex-direction:column;gap:1.5rem}.flow-stats .stat{text-align:center}.stat-value.customers{color:#667eea}.stat-value.repeat{color:#38a169}.rhythm-stats{display:flex;flex-direction:column;gap:1.5rem}.rhythm-stats .stat{text-align:center}.stat-value.weekday{color:#667eea}.stat-value.weekend{color:#38a169}.health-stats{display:flex;flex-direction:column;gap:1.5rem}.health-row{display:flex;gap:2rem;justify-content:space-between}.health-row .stat{flex:1;text-align:center}.stat-value.attempts{color:#718096}.stat-value.successful{color:#38a169}.stat-value.success-rate{color:#667eea}.stat-value.lost-revenue{color:#e53e3e}@media (max-width: 1024px){.dashboard-row{flex-direction:column;gap:1.5rem}.headlines-row .widget,.performance-row .widget,.charts-row .widget{flex:none}.chart-container{height:250px}.pie-chart{height:200px}.metric-value{font-size:2rem}}@media (max-width: 768px){.app-header{padding:1.5rem 1rem}.app-header h1{font-size:2rem}.app-main{padding:1rem}.upload-container,.mapper-container{padding:2rem;margin:1rem}.dashboard-header{flex-direction:column;align-items:stretch;text-align:center}.widget{padding:1.5rem}.button-group{flex-direction:column}.insight-value{font-size:2rem}.steps-container{flex-direction:column;gap:1.5rem}.how-it-works-section h2{font-size:1.5rem}.step-card{padding:1.5rem}.partners-container{flex-direction:column;gap:1rem}.partner-logo{max-width:250px;height:70px}.mapping-form{display:flex;flex-direction:column;gap:1.5rem}.required-grid,.optional-grid{grid-template-columns:1fr}.required-section,.optional-section{padding:1.5rem}}.radio-group{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.radio-option{display:flex;align-items:center;gap:.5rem;padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .2s;font-weight:400}.radio-option:hover{border-color:#cbd5e0;background-color:#f7fafc}.radio-option input[type=radio]{margin:0;accent-color:#667eea}.radio-option input[type=radio]:checked+span{font-weight:600;color:#667eea}.radio-option:has(input[type=radio]:checked){border-color:#667eea;background-color:#f0f4ff}.partners-section{background-color:#f8fafc;text-align:center;padding:2rem 1rem;border-top:1px solid #e2e8f0}.partners-section h3{color:#718096;font-size:1rem;font-weight:600;margin-bottom:1.5rem;text-transform:uppercase;letter-spacing:.05em}.partners-container{display:flex;justify-content:center;align-items:center;gap:2rem;max-width:600px;margin:0 auto}.partner-logo{flex:1;max-width:180px;height:80px;border:1px solid #cbd5e0;border-radius:8px;display:flex;align-items:center;justify-content:center;background-color:#fff;transition:border-color .2s,box-shadow .2s;padding:1rem}.partner-logo:hover{border-color:#a0aec0;box-shadow:0 2px 4px #0000000d}.partner-logo img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .2s}.partner-logo:hover img{transform:scale(1.05)}.partner-logo span{color:#4a5568;font-size:.9rem;font-weight:600;letter-spacing:.025em}.app-footer{background-color:#f8fafc;text-align:center;padding:1rem;margin-top:auto}.app-footer p{margin:0;font-size:.9rem;color:#718096;font-weight:500}.app-footer a{color:#667eea;text-decoration:none;font-weight:600;transition:color .2s}.app-footer a:hover{color:#764ba2;text-decoration:underline}@media (max-width: 480px){.app-header h1{font-size:1.8rem}.upload-container,.mapper-container{padding:1.5rem}.widget{padding:1rem}.chart-container{height:200px}}
