.resume-node{border:2px double #2563eb;border-radius:12px;width:200px!important;height:100px!important;padding:16px;display:flex;justify-content:center;align-items:center;font-size:18px;font-weight:700;color:#1e40af;background:linear-gradient(135deg,#eff6ff,#dbeafe);box-shadow:0 8px 16px -4px rgb(37 99 235/.15);position:relative;overflow:hidden}.resume-node:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(37,99,235,.1) 0,transparent 70%);animation:pulse 3s ease-in-out infinite}.resume-node-content{display:flex;flex-direction:column;align-items:center;gap:8px;z-index:1}.resume-icon{width:24px;height:24px;color:#2563eb}.job-node{border:1px solid #e5e7eb;border-radius:8px;width:250px!important;min-height:100px!important;height:auto!important;padding:12px;font-size:14px;background:linear-gradient(180deg,#ffffff,#f8fafc);box-shadow:0 4px 6px -1px rgb(0 0 0/.1);transition:all .2s ease}.job-node:hover{border-color:#2563eb;transform:translateY(-2px);box-shadow:0 8px 12px -1px rgb(0 0 0/.1)}.job-card-content{display:flex;flex-direction:column;gap:8px;height:100%;min-height:76px}.job-title{font-weight:600;color:#1e293b;font-size:14px;line-height:1.3;overflow:visible;word-wrap:break-word}.company-name{color:#475569;font-size:13px;display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.company-icon{width:14px;height:14px;flex-shrink:0}.job-meta{margin-top:auto}.meta-pills{display:flex;flex-wrap:wrap;gap:4px}.meta-pill{font-size:11px;padding:2px 6px;border-radius:4px;font-weight:500;white-space:nowrap}.meta-pill.type{background-color:#f0f9ff;color:#0369a1}.meta-pill.remote{background-color:#f0fdf4;color:#166534}.meta-pill.salary{background-color:#ecfdf5;color:#059669}.loading-container{display:flex;flex-direction:column;align-items:center;gap:2rem}.graph-loader{width:400px;height:300px;position:relative}.resume-node-loader{width:60px;height:60px;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:2px solid #2563eb;border-radius:12px;position:absolute;top:40px;left:170px;animation:pulse 2s ease-in-out infinite}.job-node-loader{width:50px;height:40px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;position:absolute;opacity:0;animation:fadeInScale .5s ease-out forwards}.n1{left:100px;animation-delay:.2s}.n1,.n2{top:150px}.n2{left:175px;animation-delay:.4s}.n3{top:150px;left:250px;animation-delay:.6s}.n4{left:60px;animation-delay:.8s}.n4,.n5{top:230px}.n5{left:290px;animation-delay:1s}.connections{position:absolute;top:0;left:0;pointer-events:none}.connection{fill:none;stroke:#94a3b8;stroke-width:2;stroke-dasharray:10;opacity:0;animation:drawLine 1s ease-out forwards}.c1{animation-delay:.3s}.c2{animation-delay:.5s}.c3{animation-delay:.7s}.c4{animation-delay:.9s}.c5{animation-delay:1.1s}.floating-icons{position:absolute;inset:0;pointer-events:none}.floating-icon{position:absolute;font-size:20px;opacity:0;animation:float 3s ease-in-out infinite}.i1{top:30%;left:20%;animation-delay:.2s}.i2{top:40%;left:70%;animation-delay:.7s}.i3{top:60%;left:30%;animation-delay:1.2s}.i4{top:50%;left:80%;animation-delay:1.7s}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(37,99,235,.4)}50%{transform:scale(1.05);box-shadow:0 0 20px 10px rgba(37,99,235,0)}to{transform:scale(1);box-shadow:0 0 0 0 rgba(37,99,235,0)}}@keyframes fadeInScale{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes drawLine{0%{stroke-dashoffset:100;opacity:0}to{stroke-dashoffset:0;opacity:.6}}@keyframes float{0%{transform:translateY(0) rotate(0deg);opacity:0}30%{opacity:1}70%{opacity:1}to{transform:translateY(-100px) rotate(1turn);opacity:0}}