*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-ink:#0f172a;--color-ink-muted:#475569;--color-ink-faint:#94a3b8;--color-surface:#ffffff;--color-surface-raised:#f8fafc;--color-surface-inset:#f1f5f9;--color-brand:#1d4ed8;--color-brand-light:#dbeafe;--color-teal:#14b8a6;--color-success:#16a34a;--color-warn:#d97706;--color-danger:#dc2626;--color-hairline:rgba(15,23,42,0.08);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--sidebar-w:240px}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.5;color:var(--color-ink);background:var(--color-surface-raised);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;font:inherit}.crm-shell{display:flex;min-height:100dvh}.crm-sidebar{width:var(--sidebar-w);background:var(--color-ink);color:#e2e8f0;display:flex;flex-direction:column;flex-shrink:0;position:-webkit-sticky;position:sticky;top:0;height:100dvh;overflow-y:auto}.crm-sidebar-logo{padding:1.25rem 1.25rem 1rem;border-bottom:1px solid rgba(255,255,255,.07);font-weight:700;font-size:14px;letter-spacing:.02em}.crm-sidebar-logo span{color:var(--color-teal)}.crm-sidebar-nav{flex:1 1;padding:.5rem 0}.crm-nav-group{padding:.875rem 1.25rem .375rem;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#64748b;font-weight:600}.crm-nav-item{display:flex;align-items:center;gap:.625rem;padding:.5rem 1.25rem;font-size:13.5px;color:#cbd5e1;border-radius:0;transition:background .1s,color .1s}.crm-nav-item:hover{background:rgba(255,255,255,.06);color:#fff}.crm-nav-item.active{background:rgba(29,78,216,.35);color:#fff}.crm-nav-item svg{opacity:.7;flex-shrink:0}.crm-main{flex:1 1;min-width:0;display:flex;flex-direction:column}.crm-topbar{height:52px;background:var(--color-surface);border-bottom:1px solid var(--color-hairline);display:flex;align-items:center;padding:0 1.5rem;gap:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.crm-topbar-title{font-size:15px;font-weight:600;flex:1 1}.crm-topbar-user{font-size:12px;color:var(--color-ink-muted)}.crm-content{padding:1.75rem;flex:1 1}.crm-card{background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);overflow:hidden}.crm-card-header{padding:1rem 1.25rem;border-bottom:1px solid var(--color-hairline);display:flex;align-items:center;justify-content:space-between}.crm-card-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-muted)}.crm-table{width:100%;border-collapse:collapse}.crm-table th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--color-ink-muted);font-weight:600;padding:.625rem 1rem;text-align:left;background:var(--color-surface-inset)}.crm-table td,.crm-table th{border-bottom:1px solid var(--color-hairline)}.crm-table td{padding:.75rem 1rem;vertical-align:middle;font-size:13.5px}.crm-table tr:last-child td{border-bottom:none}.crm-table tbody tr:hover{background:var(--color-surface-raised)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:100px;font-size:11px;font-weight:600;letter-spacing:.03em}.badge-new{background:#dbeafe;color:#1e40af}.badge-contacted{background:#fef9c3;color:#92400e}.badge-qualified{background:#dcfce7;color:#15803d}.badge-proposal{background:#ede9fe;color:#6d28d9}.badge-won{background:#d1fae5;color:#065f46}.badge-lost{background:#fee2e2;color:#991b1b}.btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border-radius:var(--radius-md);font-size:13px;font-weight:600;border:none;transition:opacity .12s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-brand);color:#fff}.btn-primary:hover:not(:disabled){opacity:.88}.btn-ghost{background:transparent;color:var(--color-ink-muted);border:1px solid var(--color-hairline)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-inset)}.btn-danger{background:var(--color-danger);color:#fff}.field{display:flex;flex-direction:column;gap:.3rem}.field label{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-muted)}.field input,.field select,.field textarea{padding:.5rem .75rem;border:1px solid var(--color-hairline);border-radius:var(--radius-md);font:inherit;font-size:13.5px;color:var(--color-ink);background:var(--color-surface);outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-light)}.crm-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.5rem}.crm-stat-tile{background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);padding:1.25rem}.crm-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--color-ink-muted);font-weight:600;margin-bottom:.5rem}.crm-stat-value{font-size:28px;font-weight:800;color:var(--color-ink);line-height:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.crm-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .9rem;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;background:var(--color-surface);color:var(--color-ink);border:1px solid var(--color-hairline);transition:background .12s,opacity .12s;text-decoration:none}.crm-btn:hover:not(:disabled){background:var(--color-surface-inset)}.crm-btn:disabled{opacity:.5;cursor:not-allowed}.crm-btn-primary{background:var(--color-brand);color:#fff;border-color:var(--color-brand)}.crm-btn-primary:hover:not(:disabled){opacity:.9;background:var(--color-brand)}.crm-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-sm);background:var(--color-surface-inset);border:1px solid var(--color-hairline);color:var(--color-ink-muted);font-size:13px;cursor:pointer}.crm-btn-icon:hover:not(:disabled){background:var(--color-surface-raised)}.crm-btn-icon:disabled{opacity:.4;cursor:not-allowed}.crm-card-pad,.crm-card>.crm-card-header+*,.crm-card>.field:first-child,.crm-card>div.field{padding:1.25rem}.badge{background:var(--color-surface-inset);color:var(--color-ink-muted)}.portal-stepper{display:flex;flex-direction:column;gap:0}.portal-step{display:flex;gap:.85rem;padding:.6rem 0;position:relative}.portal-step-dot{width:22px;height:22px;border-radius:100px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:var(--color-surface-inset);color:var(--color-ink-muted);border:2px solid var(--color-hairline);z-index:1}.portal-step.done .portal-step-dot{background:var(--color-success);color:#fff;border-color:var(--color-success)}.portal-step.current .portal-step-dot{background:var(--color-brand);color:#fff;border-color:var(--color-brand)}.portal-step:not(:last-child):before{content:"";position:absolute;left:10px;top:1.8rem;bottom:-.4rem;width:2px;background:var(--color-hairline)}.portal-step.done:not(:last-child):before{background:var(--color-success)}.portal-step-label{font-size:13.5px;font-weight:600}.portal-step-meta{font-size:12px;color:var(--color-ink-muted)}.portal-progress-bar{height:8px;border-radius:100px;background:var(--color-surface-inset);overflow:hidden}.portal-progress-fill{height:100%;background:var(--color-brand);transition:width .2s}.chat-thread{display:flex;flex-direction:column;gap:.6rem;max-height:420px;overflow-y:auto;padding:1.25rem}.chat-msg{max-width:78%;padding:.55rem .8rem;border-radius:12px;font-size:13.5px;line-height:1.45}.chat-msg.staff{align-self:flex-start;background:var(--color-surface-inset);border-bottom-left-radius:3px}.chat-msg.client{align-self:flex-end;background:var(--color-brand);color:#fff;border-bottom-right-radius:3px}.chat-msg-meta{font-size:10.5px;opacity:.7;margin-top:.2rem}