*{box-sizing:border-box;margin:0;padding:0}body{color:#333;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.container{max-width:1200px;margin:0 auto;padding:24px 16px}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}header h1{font-size:24px;font-weight:700}.stats{color:#666;font-size:14px}.filters{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.filter-btn{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:20px;padding:6px 14px;font-size:13px;transition:all .15s}.filter-btn:hover{border-color:#999}.filter-btn.active{color:#fff;background:#333;border-color:#333}.search-row{gap:10px;margin-bottom:20px;display:flex}.search-bar{background:#fff;border:1px solid #ddd;border-radius:8px;flex:1;padding:10px 16px;font-size:14px}.search-bar:focus{border-color:#666;outline:none}.sort-select{cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #ddd;border-radius:8px;padding:10px 14px;font-size:13px}.sort-select:focus{border-color:#666;outline:none}.jobs-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;display:grid}.job-card{background:#fff;border:1px solid #e8e8e8;border-radius:12px;flex-direction:column;gap:12px;padding:20px;transition:box-shadow .15s;display:flex}.job-card:hover{box-shadow:0 4px 12px #00000014}.job-card-new{background:#fffbeb;border-color:#fcd34d}.job-card-new:hover{box-shadow:0 4px 12px #f59e0b2e}.job-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.job-card-top{justify-content:flex-end;display:flex}.fav-icon{cursor:pointer;color:#ccc;background:0 0;border:none;padding:0;font-size:20px;line-height:1;transition:color .15s}.fav-icon:hover,.fav-icon.fav-active{color:#f59e0b}.fav-btn.active{background:#f59e0b;border-color:#f59e0b}.job-title{color:#333;flex:1;font-size:15px;font-weight:600;line-height:1.4;text-decoration:none}.job-title:hover{color:#2563eb}.external-icon{vertical-align:middle;opacity:0;flex-shrink:0;width:13px;height:13px;margin-left:4px;transition:opacity .15s;display:inline}.job-title:hover .external-icon{opacity:1}.job-budget{color:#16a34a;white-space:nowrap;font-size:15px;font-weight:700}.job-description{color:#666;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.job-meta{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.tag{border-radius:12px;padding:3px 10px;font-size:11px;font-weight:500}.tag-category{color:#2563eb;background:#eff6ff}.tag-offers{color:#92400e;background:#fef3c7}.tag-time{color:#6b7280;background:#f3f4f6}.tag-business{color:#166534;background:#f0fdf4}.loading{text-align:center;color:#999;padding:60px;font-size:16px}.empty{text-align:center;color:#999;padding:60px}.pagination{justify-content:center;align-items:center;gap:16px;margin-top:24px;padding:16px 0;display:flex}.page-btn{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:8px;padding:8px 20px;font-size:14px;transition:all .15s}.page-btn:hover:not(:disabled){background:#f9f9f9;border-color:#999}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-info{color:#666;font-size:14px}.pagination{flex-wrap:wrap;gap:6px}.page-num{min-width:38px;padding:8px 12px}.page-btn.active{color:#fff;background:#333;border-color:#333}.page-ellipsis{color:#999;-webkit-user-select:none;user-select:none;padding:0 4px;font-size:14px}
