*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fafafa;--surface:#fff;--text:#1a1a1a;--text-secondary:#666;--border:#e5e5e5;--accent:#2563eb;--radius:8px}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.app{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem}.app-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;display:flex}.header-left{align-items:center;gap:.75rem;display:flex}.header-logo{object-fit:contain;border-radius:6px;width:auto;height:40px}.app-header h1{letter-spacing:-.02em;color:var(--accent);font-size:1.75rem;font-weight:700}.tagline{color:var(--text-secondary);margin-top:.25rem;font-size:.95rem}.loading-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;width:100%;max-width:380px;padding:2.5rem 2rem}.login-card h1{letter-spacing:-.02em;color:var(--accent);margin-bottom:.25rem;font-size:1.75rem;font-weight:700}.login-subtitle{color:var(--text-secondary);margin-bottom:2rem;font-size:.9rem}.login-label{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.35rem;font-size:.8rem;font-weight:600;display:block}.login-input{border:1px solid var(--border);border-radius:var(--radius);outline:none;width:100%;padding:.6rem .75rem;font-size:.95rem;transition:border-color .15s;display:block}.login-input:focus{border-color:var(--accent)}.login-error{color:#e53935;text-align:left;margin-top:.5rem;font-size:.82rem}.login-btn{border-radius:var(--radius);cursor:pointer;border:none;width:100%;margin-top:1rem;padding:.65rem;font-size:.9rem;font-weight:600;transition:opacity .15s;display:block}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-btn.primary{background:var(--accent);color:#fff}.login-btn.primary:hover:not(:disabled){opacity:.9}.login-btn.secondary{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.login-btn.secondary:hover{border-color:var(--accent);color:var(--accent)}.login-hint{color:var(--text-secondary);margin-top:.75rem;font-size:.78rem}.magic-link-sent{padding:1rem 0}.sent-icon{margin-bottom:.75rem;font-size:2.5rem}.magic-link-sent h2{margin-bottom:.5rem;font-size:1.15rem;font-weight:600}.magic-link-sent p{color:var(--text-secondary);margin-bottom:1rem;font-size:.88rem;line-height:1.5}.header-right{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.user-menu{align-items:center;gap:.5rem;display:flex}.user-email{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:.8rem;overflow:hidden}.sign-out-btn{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:.3rem .65rem;font-size:.78rem;transition:all .15s}.sign-out-btn:hover{color:#e53935;border-color:#e53935}.upload-section{margin-bottom:2rem}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;background:var(--surface);padding:2.5rem 2rem;transition:all .15s}.drop-zone:hover,.drop-zone.dragging{border-color:var(--accent);background:#f0f6ff}.drop-zone.has-file{background:#f1f8f1;border-style:solid;border-color:#43a047;padding:1.25rem 2rem}.upload-icon{color:var(--text-secondary);margin-bottom:.5rem;font-size:1.75rem;display:block}.drop-prompt p{margin:.25rem 0}.drop-prompt .hint{color:var(--text-secondary);font-size:.8rem}.file-info{justify-content:center;align-items:center;gap:.5rem;font-weight:500;display:flex}.file-icon{color:#43a047;font-size:1.1rem}.change-file{color:var(--text-secondary);font-size:.8rem;font-weight:400}.sample-btn{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;background:0 0;margin:.75rem auto 0;padding:.5rem 1.25rem;font-size:.85rem;transition:all .15s;display:block}.sample-btn:hover{border-color:var(--accent);color:var(--accent)}.metrics-bar{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:1.25rem}.metric-value{color:var(--text);font-size:1.5rem;font-weight:700}.metric-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:.25rem;font-size:.8rem}.insights-section{margin-bottom:2rem}.insights-section h2{margin-bottom:1rem;font-size:1.1rem;font-weight:600}.insight-grid{gap:.75rem;display:grid}.insight-card{border-radius:var(--radius);align-items:flex-start;gap:1rem;padding:1rem 1.25rem;display:flex}.insight-icon{text-align:center;min-width:1.5rem;font-size:1rem;font-weight:800;line-height:1.5}.insight-body h3{margin-bottom:.25rem;font-size:.95rem;font-weight:600}.insight-body p{color:var(--text-secondary);font-size:.85rem;line-height:1.5}.table-section{margin-bottom:2rem}.table-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.table-header h2{font-size:1.1rem;font-weight:600}.table-search{border:1px solid var(--border);border-radius:var(--radius);outline:none;width:220px;padding:.45rem .75rem;font-size:.85rem;transition:border-color .15s}.table-search:focus{border-color:var(--accent)}.table-wrapper{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.85rem}thead{background:#f9f9f9}th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-bottom:1px solid var(--border);padding:.75rem 1rem;font-size:.78rem;font-weight:600}th:hover{color:var(--text)}td{white-space:nowrap;border-bottom:1px solid #f0f0f0;padding:.65rem 1rem}.customer-name{font-weight:500}.score-cell{text-align:center;font-variant-numeric:tabular-nums}.rfm-total{font-weight:700}.segment-badge{color:#fff;letter-spacing:.01em;border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.table-footer{color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.8rem;display:flex}.pagination{align-items:center;gap:.25rem;display:flex}.page-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-secondary);cursor:pointer;padding:.25rem .5rem;font-size:.8rem;line-height:1;transition:all .15s}.page-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.page-btn:disabled{opacity:.35;cursor:not-allowed}.page-info{font-variant-numeric:tabular-nums;padding:0 .5rem}.branding-panel{flex-shrink:0;position:relative}.branding-toggle{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;gap:.35rem;padding:.4rem .85rem;font-size:.82rem;transition:all .15s;display:flex}.branding-toggle:hover{border-color:var(--accent);color:var(--accent)}.gear-icon{font-size:1rem}.branding-drawer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:100;width:300px;padding:1.25rem;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 8px 24px #0000001a}.branding-drawer h3{margin-bottom:1rem;font-size:.9rem;font-weight:600}.field-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.85rem;font-size:.78rem;font-weight:600;display:block}.field-label input[type=text]{border:1px solid var(--border);border-radius:var(--radius);text-transform:none;letter-spacing:normal;width:100%;color:var(--text);outline:none;margin-top:.35rem;padding:.45rem .65rem;font-size:.85rem;font-weight:400;display:block}.field-label input[type=text]:focus{border-color:var(--accent)}.color-row{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.4rem;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:24px;height:24px;padding:0;transition:border-color .15s}.color-swatch.active{border-color:var(--text);box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--text)}.color-picker{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;width:24px;height:24px;padding:0}.logo-upload-row{align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.logo-preview{object-fit:contain;border:1px solid var(--border);border-radius:4px;width:auto;height:32px}.logo-upload-btn,.logo-remove-btn{border-radius:var(--radius);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);padding:.3rem .65rem;font-size:.78rem;transition:all .15s}.logo-upload-btn:hover{border-color:var(--accent);color:var(--accent)}.logo-remove-btn:hover{color:#e53935;border-color:#e53935}.reset-btn{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;margin-top:.75rem;padding:.45rem;font-size:.8rem;transition:all .15s;display:block}.reset-btn:hover{color:#e53935;border-color:#e53935}@media (width<=640px){.app{padding:1.25rem 1rem 3rem}.metrics-bar{grid-template-columns:repeat(2,1fr)}.table-search{width:100%}}
