:root{--jobs-primary: #667eea;--jobs-secondary: #764ba2;--jobs-success: #10b981;--jobs-danger: #ef4444;--jobs-warning: #f59e0b;--jobs-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%)}.swipe-container{position:relative;width:100%;max-width:400px;height:520px;margin:0 auto;perspective:1000px}.card-stack{position:relative;width:100%;height:100%}.job-card{position:absolute;width:100%;height:100%;background:#fff;border-radius:20px;box-shadow:0 10px 40px rgba(0,0,0,.15);overflow:hidden;cursor:grab;user-select:none;touch-action:none;transition:transform .1s ease-out;will-change:transform}.job-card:active{cursor:grabbing}.job-card.animating{transition:transform .4s ease-out,opacity .4s ease-out}.job-card.swipe-left{transform:translate(-150%) rotate(-30deg)!important;opacity:0}.job-card.swipe-right{transform:translate(150%) rotate(30deg)!important;opacity:0}.job-card-header{background:var(--jobs-gradient);color:#fff;padding:2rem;position:relative}.job-logo{width:80px;height:80px;background:#fff;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:40px;box-shadow:0 4px 12px rgba(0,0,0,.15);margin-bottom:1rem}.job-title{font-size:1.5rem;font-weight:800;margin:0 0 .5rem;line-height:1.2}.job-company{font-size:1.1rem;opacity:.9;font-weight:500}.job-badges{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap}.job-badge{background:rgba(255,255,255,.2);padding:.4rem .8rem;border-radius:20px;font-size:.8rem;font-weight:600;backdrop-filter:blur(10px)}.job-badge.salary{background:rgba(16,185,129,.9)}.job-card-body{padding:1.5rem}.job-meta{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.job-meta-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#6b7280}.job-meta-icon{font-size:1.1rem}.job-description{font-size:.95rem;color:#4b5563;line-height:1.6;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.job-tags{display:flex;gap:.5rem;flex-wrap:wrap}.job-tag{background:#f3f4f6;color:#6b7280;padding:.3rem .7rem;border-radius:12px;font-size:.8rem;font-weight:500}.swipe-indicator{position:absolute;top:50%;transform:translateY(-50%);font-size:3rem;font-weight:900;opacity:0;transition:opacity .2s ease;z-index:10;padding:1rem;border-radius:12px;border:4px solid}.swipe-indicator.like{right:20px;color:var(--jobs-success);border-color:var(--jobs-success);background:rgba(16,185,129,.1)}.swipe-indicator.nope{left:20px;color:var(--jobs-danger);border-color:var(--jobs-danger);background:rgba(239,68,68,.1)}.swipe-actions{display:flex;justify-content:center;gap:2rem;margin-top:1.5rem}.swipe-btn{width:64px;height:64px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:all .2s ease;box-shadow:0 4px 12px rgba(0,0,0,.15)}.swipe-btn:hover{transform:scale(1.1)}.swipe-btn:active{transform:scale(.95)}.swipe-btn.nope{background:#fff;color:var(--jobs-danger);border:3px solid var(--jobs-danger)}.swipe-btn.nope:hover{background:var(--jobs-danger);color:#fff}.swipe-btn.save{background:#fff;color:var(--jobs-warning);border:3px solid var(--jobs-warning)}.swipe-btn.save:hover{background:var(--jobs-warning);color:#fff}.swipe-btn.like{background:var(--jobs-success);color:#fff;width:72px;height:72px;font-size:1.8rem}.swipe-btn.like:hover{background:#059669;box-shadow:0 8px 20px rgba(16,185,129,.4)}.jobs-filters{display:flex;gap:.75rem;margin-bottom:1.5rem;overflow-x:auto;padding:.5rem 0;-webkit-overflow-scrolling:touch}.filter-chip{background:#fff;border:2px solid #e5e7eb;padding:.6rem 1.2rem;border-radius:25px;font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s ease}.filter-chip:hover{border-color:var(--jobs-primary);color:var(--jobs-primary)}.filter-chip.active{background:var(--jobs-gradient);color:#fff;border-color:transparent}.empty-state{text-align:center;padding:4rem 2rem;color:#6b7280}.empty-state-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state-title{font-size:1.5rem;font-weight:700;color:#374151;margin-bottom:.5rem}.match-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);display:none;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(8px)}.match-modal.active{display:flex;animation:fadeIn .3s ease}.match-content{background:#fff;border-radius:24px;padding:3rem;text-align:center;max-width:400px;width:90%;animation:bounceIn .5s ease}.match-icon{font-size:5rem;margin-bottom:1rem}.match-title{font-size:2rem;font-weight:800;background:var(--jobs-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1rem}.match-btns{display:flex;gap:1rem;margin-top:2rem}.match-btn{flex:1;padding:1rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.match-btn.primary{background:var(--jobs-gradient);color:#fff;border:none}.match-btn.secondary{background:#fff;color:#6b7280;border:2px solid #e5e7eb}.jobs-stats{display:flex;justify-content:space-around;background:#fff;padding:1rem;border-radius:16px;margin-bottom:1.5rem;box-shadow:0 2px 8px rgba(0,0,0,.05)}.stat-item{text-align:center}.stat-number{font-size:1.5rem;font-weight:800;color:var(--jobs-primary)}.stat-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes bounceIn{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@media(max-width:480px){.swipe-container{height:480px}.job-card-header{padding:1.5rem}.job-logo{width:60px;height:60px;font-size:32px}.job-title{font-size:1.25rem}.swipe-actions{gap:1.5rem}.swipe-btn{width:56px;height:56px}.swipe-btn.like{width:64px;height:64px}}.job-card{transform-style:preserve-3d}.job-card-inner{position:relative;width:100%;height:100%;transition:transform .6s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.job-card.flipped .job-card-inner{transform:rotateY(180deg)}.job-card-front,.job-card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:20px;overflow:hidden}.job-card-front{background:#fff}.job-card-back{background:linear-gradient(135deg,#1f2937,#374151);color:#fff;transform:rotateY(180deg);padding:2rem;display:flex;flex-direction:column}.job-back-header{text-align:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.2)}.job-back-title{font-size:1.25rem;font-weight:700;margin:0 0 .5rem}.job-back-company{opacity:.8;font-size:.9rem}.job-requirements{flex:1}.job-requirements h4{font-size:.9rem;text-transform:uppercase;letter-spacing:1px;opacity:.7;margin:0 0 1rem}.requirement-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:.9rem}.requirement-icon{width:24px;text-align:center}.flip-hint{text-align:center;font-size:.8rem;opacity:.6;margin-top:1rem}.flip-btn{position:absolute;bottom:12px;right:12px;background:rgba(0,0,0,.5);color:#fff;border:none;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;z-index:5;transition:all .2s ease;backdrop-filter:blur(4px)}.flip-btn:hover{background:rgba(0,0,0,.7);transform:scale(1.1)}.job-card-back .flip-btn{background:rgba(255,255,255,.2)}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;overflow:hidden}.confetti{position:absolute;width:10px;height:10px;opacity:0;animation:confetti-fall 3s ease-out forwards}.confetti.circle{border-radius:50%}.confetti.square{border-radius:2px}.confetti.star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-100px) rotate(0) scale(1)}50%{opacity:1}to{opacity:0;transform:translateY(100vh) rotate(720deg) scale(.5)}}.celebration-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle,rgba(16,185,129,.1) 0%,transparent 70%);pointer-events:none;z-index:998;opacity:0;animation:celebration-pulse .5s ease-out}@keyframes celebration-pulse{0%{opacity:0;transform:scale(.8)}50%{opacity:1}to{opacity:0;transform:scale(1.5)}}.match-modal.active .match-content{animation:matchBounce .6s cubic-bezier(.68,-.55,.265,1.55)}@keyframes matchBounce{0%{transform:scale(0) rotate(-10deg)}50%{transform:scale(1.1) rotate(5deg)}70%{transform:scale(.95) rotate(-2deg)}to{transform:scale(1) rotate(0)}}.match-icon.animated{animation:iconPop .5s ease-out .3s both}@keyframes iconPop{0%{transform:scale(0)}50%{transform:scale(1.3)}to{transform:scale(1)}}
