:root{--bg:#f8fafc;--surface:#fff;--border:#e2e8f0;--text:#0f172a;--text2:#475569;--text3:#94a3b8;--accent:#4f46e5;--green:#16a34a;--amber:#f59e0b;--red:#ef4444;--blue:#0891b2}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}header{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:14px;padding:18px 28px;display:flex}h1{margin:0;font-size:22px}.period-bar{border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;gap:8px;padding:18px 28px;display:flex}.period-btn{border:1px solid var(--border);cursor:pointer;color:var(--text2);background:#fff;border-radius:99px;padding:8px 18px;font-size:13px;font-weight:500}.period-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.period-btn:hover:not(.active){background:#f1f5f9}.custom-range{align-items:center;gap:8px;margin-left:auto;display:flex}.custom-range input[type=date]{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;padding:7px 10px;font-size:13px}.container{max-width:1400px;margin:0 auto;padding:28px}.period-meta{color:var(--text2);margin-bottom:18px;font-size:13px}.totals{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:24px;display:grid}.tot-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.tot-label{color:var(--text2);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:500}.tot-val{color:var(--text);margin-top:6px;font-size:28px;font-weight:800}.rep-cards{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:18px;display:grid}.rep-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px}.rep-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;display:flex}.rep-name{color:var(--text);font-size:18px;font-weight:800}.rep-edit{cursor:pointer;color:var(--text2);background:#f1f5f9;border:none;border-radius:8px;padding:5px 12px;font-size:12px;font-weight:600}.rep-edit:hover{background:#e2e8f0}.funnel{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px;display:grid}.funnel-step{text-align:center;color:#fff;border-radius:10px;padding:12px 8px}.funnel-step .num{font-size:22px;font-weight:800;line-height:1}.funnel-step .lbl{opacity:.92;text-transform:uppercase;letter-spacing:.3px;margin-top:4px;font-size:11px;font-weight:600}.conv-row{color:var(--text2);justify-content:space-around;margin-bottom:14px;font-size:11px;display:flex}.conv-row strong{color:var(--text);font-weight:700}.gauge-wrap{flex-direction:column;align-items:center;padding:8px 0 0;display:flex}.gauge-title{color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:700}.gauge-svg{width:100%;max-width:300px;height:auto}.gauge-zone{fill:none;stroke-width:24px;stroke-linecap:round}.gauge-needle{stroke:#374151;stroke-width:5px;stroke-linecap:round;transform-origin:150px 130px;transition:transform 1s cubic-bezier(.34,1.4,.64,1)}.gauge-pivot{fill:#374151}.gauge-bottom{text-align:center;color:var(--text2);margin-top:6px;font-size:13px}.gauge-bottom strong{color:var(--text);font-size:15px;font-weight:700}.gauge-side{width:100%;max-width:280px;color:var(--text3);justify-content:space-between;margin-top:-12px;font-size:11px;font-weight:700;display:flex}.gauge-pct-big{text-align:center;margin-top:-6px;font-size:32px;font-weight:800}.modal-bg{z-index:100;background:#0f172a80;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-bg.show{display:flex}.modal-card{background:#fff;border-radius:14px;width:90%;max-width:380px;padding:24px}.modal-card h3{margin:0 0 14px;font-size:18px}.modal-card label{color:var(--text2);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.modal-card input{border:1px solid var(--border);border-radius:8px;width:100%;padding:10px 12px;font-size:15px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.btn{cursor:pointer;border:none;border-radius:8px;padding:9px 18px;font-size:13px;font-weight:600}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{color:var(--text);background:#f1f5f9}.empty{color:var(--text3);text-align:center;padding:40px 0;font-size:14px}.loading{color:var(--text3);text-align:center;padding:40px 0;font-size:13px}
