:root{--bg-top:#eef4ff;--bg-bottom:#f5f7fb;--surface:#f8fafc;--surface-raised:#fff;--ink:#0f172a;--ink-soft:#334155;--muted:#64748b;--line:#dbe3ef;--line-soft:#e8eef7;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-ink:#fff;--accent-soft:#dbeafe;--accent-warm:#f97316;--danger:#dc2626;--danger-soft:#fee2e2;--warning-soft:#fef3c7;--warning-ink:#b45309;--success-soft:#dcfce7;--success-ink:#15803d;--shadow:0 1px 2px #0f172a0d;--radius:10px;--radius-sm:6px;--font-display:"Outfit", "Segoe UI", sans-serif;--font-body:"Plus Jakarta Sans", "Segoe UI", sans-serif;font-family:var(--font-body);color:var(--ink);background:var(--bg-bottom);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.55}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%;margin:0;overflow-x:hidden}body{background:radial-gradient(ellipse 80% 50% at 0% 0%, #2563eb1f, transparent 55%), radial-gradient(ellipse 60% 40% at 100% 0%, #f973161a, transparent 50%), linear-gradient(180deg, var(--bg-top) 0%, var(--bg-bottom) 45%, #eef2f7 100%);background-attachment:fixed;min-height:100vh}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit}.app-shell{max-width:920px;padding:1.75rem 1.35rem 3.5rem;padding-left:max(1.35rem, env(safe-area-inset-left));padding-right:max(1.35rem, env(safe-area-inset-right));padding-bottom:max(3.5rem, env(safe-area-inset-bottom));width:100%;margin:0 auto;overflow-x:hidden}.topbar{border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:2rem;padding-bottom:1.15rem;display:flex}.brand{font-family:var(--font-display);color:var(--accent-strong);letter-spacing:-.04em;font-size:1.7rem;font-weight:700;line-height:1.15}.topbar-tagline{color:var(--muted);font-size:.9rem;font-weight:500}.main{box-shadow:none;background:0 0;border:none;padding:0}.page-header h1{font-family:var(--font-display);color:var(--ink);letter-spacing:-.03em;margin:0 0 .35rem;font-size:2rem;font-weight:700;line-height:1.15}.page-header p{margin:.25rem 0}.contacts-header{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.contact-form{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:0 0;gap:.85rem;margin:0 0 1.5rem;padding:1.15rem 0 1.35rem;display:grid}.contact-form h2{font-family:var(--font-display);margin:0;font-size:1.15rem;font-weight:600}.contact-form label{color:var(--ink-soft);gap:.35rem;font-size:.9rem;font-weight:600;display:grid}.contact-form input,.contact-form textarea{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;font:inherit;color:var(--ink);background:var(--surface-raised);padding:.7rem .8rem;transition:border-color .14s,box-shadow .14s}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.muted{color:var(--muted)}.error{color:var(--danger);margin:.5rem 0 0}.empty-state{border-top:1px solid var(--line-soft);color:var(--muted);margin:2rem 0 0;padding:2rem 0}.empty-state p{max-width:28rem;margin:0}.contact-list,.call-history{gap:0;margin:0;padding:0;list-style:none;display:grid}.contact-list{border-top:1px solid var(--line)}.contact-row{border-bottom:1px solid var(--line-soft);color:inherit;background:0 0;justify-content:space-between;align-items:center;gap:1rem;padding:1.05rem .15rem;transition:background .14s,padding-left .14s;display:flex}.contact-row:hover{background:color-mix(in srgb, var(--accent-soft) 45%, transparent);border-radius:var(--radius-sm);margin-left:-.45rem;margin-right:-.45rem;padding-left:.45rem;padding-right:.45rem;text-decoration:none}.contact-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.contact-row strong,.call-history strong{color:var(--ink);font-weight:600;display:block}.contact-row .muted,.contact-meta{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.contact-meta{color:var(--ink-soft);font-size:.95rem}.back-link{color:var(--muted);align-items:center;gap:.35rem;margin:0 0 1.25rem;font-size:.9rem;font-weight:600;display:inline-flex}.back-link:hover{color:var(--accent-strong)}.contact-identity{margin-bottom:1.75rem}.contact-identity .page-header h1{font-size:2.15rem}.contact-meta-line{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem .65rem;margin:.4rem 0 0;font-size:.98rem;display:flex}.contact-meta-line .sep{color:var(--line)}.contact-notes{max-width:40rem;color:var(--ink-soft);margin:.85rem 0 0}.dialer{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:0 0;margin:0 0 2.25rem;padding:1.25rem 0 1.5rem}.dialer-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .85rem;font-size:.75rem;font-weight:700}.dialer-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.btn{border:1px solid var(--line);background:var(--surface-raised);color:var(--ink);border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation;min-height:44px;padding:.7rem 1.05rem;font-weight:600;transition:background .12s,border-color .12s,color .12s}.btn:hover:not(:disabled){border-color:color-mix(in srgb, var(--ink) 22%, var(--line));background:var(--surface)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 1px #0f172a0f}.btn.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover:not(:disabled){filter:brightness(.95)}.btn-link{color:var(--accent-strong);cursor:pointer;background:0 0;border:none;min-height:auto;padding:.25rem 0;font-size:.9rem;font-weight:600;text-decoration:none}.btn-link:hover{text-decoration:underline}.call-status{gap:.35rem;margin-top:1rem;display:grid}.call-status p{flex-wrap:wrap;align-items:center;gap:.55rem;margin:0;display:flex}.label{color:var(--ink-soft);font-weight:600}.status-pill{border-radius:var(--radius-sm);letter-spacing:.01em;background:var(--accent-soft);color:var(--accent-strong);text-transform:lowercase;align-items:center;padding:.12rem .45rem;font-size:.78rem;font-weight:600;display:inline-flex}.status-completed,.status-in-progress{background:var(--success-soft);color:var(--success-ink)}.status-failed,.status-busy,.status-canceled,.status-no-answer{background:var(--danger-soft);color:var(--danger)}.status-queued,.status-ringing,.status-processing,.status-pending{background:var(--warning-soft);color:var(--warning-ink)}.history{margin-top:.5rem}.history h2{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;margin:0 0 1rem;font-size:1.25rem;font-weight:600}.call-history{border-top:1px solid var(--line)}.call-history li{border-bottom:1px solid var(--line-soft);overflow-wrap:anywhere;background:0 0;gap:.55rem;padding:1.15rem 0;display:grid}.call-history-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.call-history-meta{overflow-wrap:anywhere;font-size:.9rem}.wave-player{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);gap:.55rem;padding:.85rem 1rem;display:grid}.wave-player-top{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.wave-player-label{font-family:var(--font-display);color:var(--ink);font-size:.9rem;font-weight:600}.wave-player-time{font-variant-numeric:tabular-nums;font-size:.82rem}.wave-player-row{align-items:center;gap:.75rem;display:flex}.wave-play-btn{flex-shrink:0;min-width:4.75rem;padding-left:.9rem;padding-right:.9rem}.wave-canvas-wrap{flex:1;min-width:0;min-height:56px;position:relative}.wave-canvas{width:100%}.wave-loading{pointer-events:none;align-items:center;margin:0;font-size:.85rem;display:flex;position:absolute;inset:0}.call-status .wave-player{margin-top:.75rem}.call-analysis{gap:.85rem;margin-top:.65rem;display:grid}.call-analysis-actions{flex-wrap:wrap;align-items:center;gap:.55rem .75rem;display:flex}.call-analysis-actions a{font-size:.9rem;font-weight:600}.analysis-results{gap:.85rem;margin-top:.25rem;display:grid}.sale-score{--score-color:var(--accent);--score-track:var(--line-soft);border-radius:var(--radius);background:var(--surface-raised);border:1px solid var(--line);align-items:center;gap:1.15rem;padding:1.15rem 1.25rem;display:flex}.sale-score-high{--score-color:#16a34a;background:linear-gradient(135deg, #f0fdf4 0%, var(--surface-raised) 55%);border-color:#bbf7d0}.sale-score-good{--score-color:#2563eb;background:linear-gradient(135deg, #eff6ff 0%, var(--surface-raised) 55%);border-color:#bfdbfe}.sale-score-mid{--score-color:#d97706;background:linear-gradient(135deg, #fffbeb 0%, var(--surface-raised) 55%);border-color:#fde68a}.sale-score-low{--score-color:#dc2626;background:linear-gradient(135deg, #fef2f2 0%, var(--surface-raised) 55%);border-color:#fecaca}.sale-score-ring{width:7.25rem;height:7.25rem;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--score-color) 18%, transparent);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.sale-score-core{background:var(--surface-raised);border:1px solid var(--line-soft);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:.05rem;width:5.55rem;height:5.55rem;display:flex}.sale-score-value{font-family:var(--font-display);letter-spacing:-.04em;color:var(--score-color);font-size:2.35rem;font-weight:700;line-height:1}.sale-score-of{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:700}.sale-score-copy{min-width:0}.sale-score-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.8rem;font-weight:700}.sale-score-label{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);margin:.2rem 0 .35rem;font-size:1.55rem;font-weight:700;line-height:1.15}.sale-score-hint{max-width:22rem;margin:0;font-size:.9rem}.analysis-summary{border-radius:var(--radius);background:var(--surface-raised);border:1px solid var(--line);border-left:4px solid var(--accent);padding:1rem 1.1rem}.analysis-summary h4{font-family:var(--font-display);color:var(--accent-strong);margin:0 0 .45rem;font-size:.95rem;font-weight:600}.analysis-summary p{color:var(--ink-soft);margin:0;font-size:.98rem;line-height:1.6}.insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.insight-section{border-radius:var(--radius);background:var(--surface-raised);border:1px solid var(--line-soft);border-top:3px solid var(--line);min-width:0;padding:.9rem 1rem}.insight-objections{background:linear-gradient(180deg, #fef2f2 0%, var(--surface-raised) 42%);border-top-color:#ef4444}.insight-needs{background:linear-gradient(180deg, #eff6ff 0%, var(--surface-raised) 42%);border-top-color:#2563eb}.insight-requests{background:linear-gradient(180deg, #fff7ed 0%, var(--surface-raised) 42%);border-top-color:#f97316}.insight-next-steps{background:linear-gradient(180deg, #f0fdf4 0%, var(--surface-raised) 42%);border-top-color:#16a34a}.insight-section-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.65rem;display:flex}.insight-section-head h4{font-family:var(--font-display);color:var(--ink);margin:0;font-size:.92rem;font-weight:600}.insight-count{border-radius:var(--radius-sm);background:var(--surface);min-width:1.35rem;height:1.35rem;color:var(--muted);border:1px solid var(--line-soft);justify-content:center;align-items:center;padding:0 .35rem;font-size:.75rem;font-weight:700;display:inline-flex}.insight-list{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.insight-list li{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface) 70%, white);border:1px solid var(--line-soft);color:var(--ink);padding:.55rem .7rem .55rem .95rem;font-size:.92rem;line-height:1.45;position:relative}.insight-list li:before{content:"";opacity:.35;background:currentColor;border-radius:50%;width:.28rem;height:.28rem;position:absolute;top:.75rem;left:.35rem}.transcript-panel{border-top:1px solid var(--line-soft);padding-top:.35rem}.transcript{white-space:pre-wrap;border:1px solid var(--line-soft);border-radius:var(--radius);max-height:260px;color:var(--ink-soft);background:#f1f5f9;margin:.65rem 0 0;padding:.85rem 1rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84rem;line-height:1.55;overflow:auto}@media (width<=640px){.app-shell{padding:1.15rem .9rem 2.25rem;padding-left:max(.9rem, env(safe-area-inset-left));padding-right:max(.9rem, env(safe-area-inset-right));padding-bottom:max(2.25rem, env(safe-area-inset-bottom))}.topbar{flex-direction:column;align-items:flex-start;gap:.3rem;margin-bottom:1.35rem}.brand,.page-header h1,.contact-identity .page-header h1{font-size:1.55rem}.page-header p{overflow-wrap:anywhere}.contacts-header{flex-direction:column;align-items:stretch}.contacts-header .btn,.contact-form .btn{width:100%}.contact-row{flex-direction:column;align-items:flex-start;padding:1rem 0}.contact-meta{width:100%}.dialer-actions,.upload-row,.call-analysis-actions{flex-direction:column;align-items:stretch}.dialer-actions .btn,.upload-row .btn,.call-analysis-actions .btn{width:100%}.wave-player-row{flex-direction:column;align-items:stretch}.wave-play-btn{width:100%}.insight-grid{grid-template-columns:1fr}.sale-score{text-align:left;flex-direction:column;align-items:flex-start}.file-input{width:100%}.transcript{max-height:180px;font-size:.8rem}}
